Xin chào tất cả Tôi đang cố tính thời gian trôi qua trong php. Vấn đề không phải là trong php, đó là với các kỹ năng toán học của tôi. Ví dụ: Thời gian Trong: 11:35:20 (hh: mm: ss), giờ nói thời gian hiện tại là: 12:00:45 (hh: mm: ss) thì chênh lệch thời gian trong công thức của tôi cho đầu ra: 1: -34: 25. Thực tế là: 25:25Tính thời gian đã trôi qua trong php
$d1=getdate();
$hournew=$d1['hours'];
$minnew=$d1['minutes'];
$secnew=$d1['seconds'];
$hourin = $_SESSION['h'];
$secin = $_SESSION['s'];
$minin = $_SESSION['m'];
$h1=$hournew-$hourin;
$s1=$secnew-$secin;
$m1=$minnew-$minin;
if($s1<0) {
$s1+=60; }
if($s1>=(60-$secin)) {
$m1--; }
if($m1<0) {
$m1++; }
echo $h1 . ":" . $m1 . ":" . $s1;
Mọi trợ giúp xin vui lòng?
EDIT
Xin lỗi tôi có lẽ phải nói thêm rằng trang làm mới mỗi giây để hiển thị thời gian trôi qua mới vì vậy tôi phải sử dụng phương pháp của tôi ở trên. Lời xin lỗi của tôi vì đã không giải thích chính xác.
Xem xét chuyển đổi thành dấu thời gian bằng 'mktime()' và sau đó thực hiện phép trừ đơn giản. Và có lẽ bạn nên làm việc với 'time()' thay vì 'getdate()' trong trường hợp đó. –
và nếu bạn đang sử dụng một cách tiếp cận nghịch đảo? Bạn biết thời gian người dùng đăng nhập và sau đó hiển thị một loại thử nghiệm? – JellyBelly
Hơn tất cả các câu trả lời, cuối cùng tôi đã làm việc đó sau khi xem xét tất cả các câu trả lời sau: 'if ($ s1 <0) { \t $ s1 + = 60; } nếu ($ s1> = (60- $ secin)) { \t $ m1--; \t} nếu ($ m1 <0) { $ m1 * = -1; $ m1 = (60 - $ m1); $ h1--; } ' – Wilest