Làm cách nào tôi có thể nhận được sự khác biệt giữa hai ngày và giờ trong PHP?
Tuy nhiên, nếu chúng ta muốn tính số giây chính xác đã trôi qua giữa ngày một và ngày hai thì sao? Show
//Our dates $date1 = "2013-03-01 19:12:45"; $date2 = "2014-03-01 06:37:04"; //Convert them to timestamps. $date1Timestamp = strtotime($date1); $date2Timestamp = strtotime($date2); //Calculate the difference. $difference = $date2Timestamp - $date1Timestamp; echo $difference; Nếu bạn chạy đoạn mã trên, bạn sẽ thấy câu trả lời là 31490659 Nói cách khác, 31.490.659 giây đã trôi qua giữa “2013-03-01 19. 12. 45” và “2014-03-01 06. 37. 04” Một lời giải thích cơ bản về những gì chúng tôi đã làm
Nhớ. Ngày càng cũ, dấu thời gian của nó sẽ càng nhỏ Nếu bạn chạy đoạn mã sau, bạn sẽ thấy rằng ngày 2014 có dấu thời gian unix lớn hơn nhiều $olderDate = "1991-01-02"; $newerDate = "2014-06-07"; echo $olderDate . " is " . strtotime($olderDate), " Như bạn có thể thấy, “2014-06-07” có dấu thời gian lớn hơn Điều này là do nhiều giây đã trôi qua kể từ ngày 1 tháng 1 năm 1971 và ngày 7 tháng 6 năm 2014 Sự khác biệt giữa bây giờ và sau đóTrong một số trường hợp nhất định, bạn có thể cần tính số giây đã trôi qua kể từ một ngày nhất định Nói cách khác, bao nhiêu thời gian đã trôi qua giữa “bây giờ” và “sau đó”? //Our dates and times. $then = "2011-02-02 08:00:00"; $now = time(); //convert $then into a timestamp. $thenTimestamp = strtotime($then); //Get the difference in seconds. $difference = $now - $thenTimestamp; echo $difference; Một lời giải thích của mã này
Nếu bạn làm mới trang một vài lần, bạn sẽ thấy rằng sự khác biệt về số giây tiếp tục tăng lên phút và ngàyTrong nhiều trường hợp, bạn sẽ muốn xem số ngày hoặc số phút đã trôi qua Điều này là do giây là vô dụng đối với người dùng cuối Để tính số ngày đã trôi qua, bạn có thể làm như sau //Our "then" date. $then = "2009-02-04"; //Convert it into a timestamp. $then = strtotime($then); //Get the current timestamp. $now = time(); //Calculate the difference. $difference = $now - $then; //Convert seconds into days. $days = floor($difference / (60*60*24) ); echo $days; Như bạn có thể thấy, chúng tôi có thể chuyển đổi giây thành ngày bằng cách sử dụng một số phép toán cơ bản
Nếu bạn nhân các số liệu trên, nó sẽ cho bạn 86400, là tổng số giây trong một ngày Nếu bạn chia chênh lệch tính bằng giây giữa hai ngày của chúng ta cho 86.400, bạn sẽ nhận được tổng số ngày đã trôi qua Sau đó, bạn có thể sử dụng hàm sàn để làm tròn kết quả xuống. Nói cách khác, 2. 9 ngày nên trở thành 2 ngày Để có được số phút, bạn chỉ cần chia chênh lệch tính bằng giây cho 60 //Our "then" date. $then = "2009-02-04"; //Convert it into a timestamp. $then = strtotime($then); //Get the current timestamp. $now = time(); //Calculate the difference. $difference = $now - $then; //Convert seconds into minutes. $minutes = floor($difference / 60); echo $minutes; Như bạn có thể thấy, hầu hết các tính toán này thực sự khá đơn giản Sử dụng DateTime để tính chênh lệchKhi bạn hiểu những kiến thức cơ bản về xử lý ngày tháng và dấu thời gian trong PHP, bạn có thể sử dụng đối tượng DateTime Sử dụng DateTime là một giải pháp tốt hơn đơn giản vì nó sạch hơn và cung cấp cho bạn giao diện OO Ví dụ: nếu chúng ta muốn lấy sự khác biệt về số ngày bằng cách sử dụng đối tượng DateTime, chúng ta có thể làm như sau Mới ở đây? Vấn đềBạn có ngày và bạn muốn tính giờ giữa hai ngày đó Giải phápTrong phần sau, bạn sẽ thấy hai phương pháp để tìm ra chênh lệch giờ giữa hai ngày Phương pháp 1. Sử dụng hàm strtotime()Sử dụng hàm strtotime() để tìm giờ là quy trình gồm hai bước
Xem ví dụ sau cách thức hoạt động- [wpdm_file id=119] đầu ra Làm thế nào nó hoạt động dòng 3Chúng tôi chuyển đổi ngày đầu tiên thành dấu thời gian của nó. dòng 4 Chúng tôi chuyển đổi ngày thứ hai thành dấu thời gian của nó. Dòng 5 Vì chênh lệch giữa hai ngày có thể là số âm, nên chúng tôi sử dụng hàm tuyệt đối, abs(), để chỉ nhận giá trị. Sau đó, chúng tôi chia nó cho 60 * 60 để có số giờ
Phương pháp 2. Sử dụng phương thức diff() của lớp DateTIme từ SPLTính giờ giữa hai ngày là quy trình 3 bước-
diff($datetimeObj2); if($interval->format('%a') > 0){ $hour1 = $interval->format('%a')*24; } if($interval->format('%h') > 0){ $hour2 = $interval->format('%h'); } echo "Difference between two dates is " . ($hour1 + $hour2) . " hours."; ?> [wpdm_file id=120] đầu ra Làm thế nào nó hoạt động Dòng 5-6Chúng tôi chuyển đổi hai ngày thành các đối tượng DateTime tương ứng của chúng. dòng 7 Phương thức diff() trừ $datetimeObj1 khỏi $datetimeObj2 và trả về dưới dạng một đối tượng. Dòng 9-11 Ở đây, chúng tôi kiểm tra xem khoảng thời gian giữa hai ngày có nhiều hơn 1 ngày không. Nếu vậy, chúng tôi chuyển đổi ngày thành giờ bằng cách nhân nó với 24. Ở đây, format(‘%a’) trả về tổng số ngày Dòng 12-14 Dòng 16 Làm cách nào để tính chênh lệch giữa hai ngày và giờ trong php?Bạn chỉ cần sử dụng chênh lệch ngày giờ và định dạng để tính chênh lệch. . 12. 00'); . 12. 00'); . %tôi. %S');
Làm cách nào để trừ hai ngày trong php?$date1 = "24-03-2007";
Làm cách nào để kiểm tra thời gian giữa hai lần trong php?Nhận chênh lệch thời gian giữa hai khe thời gian trong PHP, Bạn có thể sử dụng strtotime() để tính toán thời gian. Dựa trên yêu cầu của bạn, bạn có thể tùy chỉnh tập lệnh |