Nếu bạn muốn tạo một vết lùi, bạn đang tìm kiếm debug_backtrace và/hoặc debug_print_backtrace
Ví dụ, cái đầu tiên sẽ giúp bạn có được một mảng như thế này [trích dẫn hướng dẫn]
array[2] { [0]=> array[4] { ["file"] => string[10] "/tmp/a.php" ["line"] => int[10] ["function"] => string[6] "a_test" ["args"]=> array[1] { [0] => &string[6] "friend" } } [1]=> array[4] { ["file"] => string[10] "/tmp/b.php" ["line"] => int[2] ["args"] => array[1] { [0] => string[10] "/tmp/a.php" } ["function"] => string[12] "include_once" } }
Họ dường như sẽ không xóa bộ đệm I/O, nhưng bạn có thể tự làm điều đó bằng cách xóa và/hoặc ob_flush
Nếu bạn có một biến đang đọc là 27654, nghĩa là 27.654 phút và bạn muốn chuyển đổi số này và xuất nó thành giờ và phút thì đây là cách thực hiện
chức năng ma thuật
function hoursandmins[$time, $format = '%02d:%02d'] { if [$time < 1] { return; } $hours = floor[$time / 60]; $minutes = [$time % 60]; return sprintf[$format, $hours, $minutes]; }
Hàm
function hoursandmins[$time, $format = '%02d:%02d'] { if [$time < 1] { return; } $hours = floor[$time / 60]; $minutes = [$time % 60]; return sprintf[$format, $hours, $minutes]; }1 nhận vào một số và nếu số đó lớn hơn 1, hãy trả về nó ở định dạng [Giờ, Phút] như vậy
Chuyển đổi giờ, phút và giây [H. i. s] thành chuỗi chỉ vài giây với PHP có thể được thực hiện bằng một hàm có thể thích ứng cũng hoạt động chỉ trong chuỗi phút giây
Chức năng chuỗi thời gian thành giây
function timeToSeconds[string $time]: int { $arr = explode[':', $time]; if [count[$arr] === 3] { return $arr[0] * 3600 + $arr[1] * 60 + $arr[2]; } return $arr[0] * 60 + $arr[1]; }
cuộc gọi ví dụ
echo timeToSeconds['6:10'];//370 echo timeToSeconds['1:6:14'];//3974
Hàm hoạt động bằng cách kiểm tra xem chuỗi sau khi tách có chứa 3 phần tử là giờ, phút và giây hay không, nếu không thì chỉ là phút và giây
Sau đó, các phần tử chính xác được nhân với số giây tương ứng của chúng, i. e một giờ là 3600 giây và một phút là 60
Giả sử bạn đang chạy một tiến trình chạy trong nền. Tốt hơn hết là đừng để người dùng mất kiên nhẫn và cho họ biết khi nào nó sẽ kết thúc. Tuy nhiên, bạn có thời gian còn lại tính bằng giây. Nếu chúng tôi hiển thị cho người dùng
567 seconds to complete
Anh ấy/cô ấy [người dùng] sẽ phải lấy một máy tính và chuyển đổi nó thành phút hoặc giờ. Hoặc nếu anh chàng/cô gái đó không phải là thiên tài toán học, anh ta sẽ đóng giao diện người dùng và nói "Cái quái gì vậy?"
Điểm chính trong giao diện người dùng là
Don't irritate the user
Đánh dấu lời nói của tôi. "Bạn không nên làm người dùng tức giận"
Thử nghiệm
Đây là một chức năng đơn giản để chuyển đổi giây thành giờ, phút và giây riêng biệt hoặc trộn lẫn với nhau
function secToHR[$seconds] {
$hours = floor[$seconds / 3600];
$minutes = floor[[$seconds / 60] % 60];
$seconds = $seconds % 60;
return "$hours:$minutes:$seconds";
}
Nếu bạn thắc mắc tại sao tôi lại chọn secToHR làm tên chức năng, thì đó là từ viết tắt của Seconds to Human Readable
Mã nguồn để chuyển đổi giây thành giờ, phút và giây được cung cấp bên dưới. Chương trình đã cho được biên dịch và thực thi thành công
" . [int]$hrs . ":" . [int]$mins . ":" . [int]$secs]; ?>
đầu ra
Giải trình
Trong chương trình trên, chúng tôi đã tạo một biến $seconds, được khởi tạo với 6530 giây. Sau đó, chúng tôi chuyển đổi giây thành giờ, phút và giây tương ứng
Mã này tránh các lệnh gọi hàm tẻ nhạt và xây dựng chuỗi từng phần một càng nhiều càng tốt và các hàm lớn và cồng kềnh mà mọi người đang tạo ra cho mã này
Nó trả về một đầu ra ở định dạng "1h05m00s" và sử dụng các số 0 ở đầu cho phút và giây, miễn là một thành phần thời gian khác không đứng trước chúng
Nó cũng bỏ qua tất cả các thành phần hàng đầu trống để tránh cung cấp cho bạn thông tin vô ích như "0h00m01s" [thay vào đó sẽ hiển thị dưới dạng "1s"]
Kết quả ví dụ. "1s", "1m00s", "19m08s", "1h00m00s", "4h08m39s"
$duration = 1; // values 0 and higher are supported!
$converted = [
'hours' => floor[ $duration / 3600 ],
'minutes' => floor[ [ $duration / 60 ] % 60 ],
'seconds' => [ $duration % 60 ]
];
$result = ltrim[ sprintf[ '%02dh%02dm%02ds', $converted['hours'], $converted['minutes'], $converted['seconds'] ], '0hm' ];
if[ $result == 's' ] { $result = '0s'; }
Nếu bạn muốn làm cho mã ngắn hơn nữa [nhưng khó đọc hơn], bạn có thể tránh mảng
function hoursandmins[$time, $format = '%02d:%02d'] { if [$time < 1] { return; } $hours = floor[$time / 60]; $minutes = [$time % 60]; return sprintf[$format, $hours, $minutes]; }2 và thay vào đó đặt các giá trị trực tiếp vào lệnh gọi sprintf[], như sau
function hoursandmins[$time, $format = '%02d:%02d'] { if [$time < 1] { return; } $hours = floor[$time / 60]; $minutes = [$time % 60]; return sprintf[$format, $hours, $minutes]; }0
Thời lượng phải bằng 0 hoặc cao hơn trong cả hai đoạn mã trên. Thời lượng phủ định không được hỗ trợ. Nhưng bạn có thể xử lý thời lượng âm bằng cách sử dụng mã thay thế sau đây