Do các hạn chế của UNIX Epoch, bạn có thể gặp vấn đề về ngày tổng hợp trước năm 1970 và sau năm 2038. Tôi chọn mất độ chính xác (= không nhìn vào giây duy nhất) nhưng tránh để vượt qua các chuyển đổi Epoch Máng (GetTimestamp). Nó phụ thuộc vào những gì bạn đang làm để làm ... Show
Trong trường hợp của tôi, sử dụng 365 thay vào đó (12*30) và "30" làm chiều dài tháng trung bình, giảm lỗi trong đầu ra có thể sử dụng được.
Lưu ý rằng lỗi có thể là 0, nếu số lượng "trung bình" được dành cho Diff. Các tài liệu PHP không nói về điều này ... trong trường hợp xấu, lỗi có thể là:
Tôi thích cho rằng ai đó đã quyết định xem xét "M" là 30 ngày và "y" là 365, tính phí "D" với sự khác biệt khi "Diff" đi bộ vào 30 tháng tháng ... Nếu ai đó biết điều gì đó nhiều hơn về điều này và có thể cung cấp tài liệu chính thức, được chào đón! Theo mặc định, không có phương pháp nào có sẵn trên lớp So sánh dấu thời gian để có số giây giữa hai ngàyChúng ta chỉ có thể so sánh dấu thời gian của hai ngày để có được sự khác biệt trong vài giây. Ví dụ: $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 284169600 Xin lưu ý rằng so sánh dấu thời gian có thể dẫn đến các vấn đề với ngày trước năm 1970 và sau năm 2038. Tính toán số giây giữa hai ngàyBạn có thể tính số giây giữa hai ngày theo cách sau: $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); $diff = $start->diff($end); $daysInSecs = $diff->format('%r%a') * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 284169600 Tính toán hoạt động theo cách sau:
Hy vọng bạn tìm thấy bài viết này hữu ích. Nó đã được xuất bản ngày 01 tháng 1 năm 2021. Vui lòng thể hiện tình yêu và sự hỗ trợ của bạn bằng cách chia sẻ bài đăng này. DateTimeImmutable::diffDateTime::diffdate_diff(Php 5> = 5.3.0, Php 7, Php 8) DateTimeInterface :: Diff - DateTimeIMmutable :: Diff - DateTime :: Diff - Date_Diff - Trả về sự khác biệt giữa hai đối tượng DateTime -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Returns the difference between two DateTime objects Sự mô tảPhong cách hướng đối tượng Thông số$start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696003 Ngày để so sánh với. $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696004 Khoảng thời gian có nên bị buộc là tích cực? Trả về giá trịĐối tượng DateInterVal đại diện cho sự khác biệt giữa hai ngày.DateInterval object represents the difference between the two dates. Giá trị trả về cụ thể hơn biểu thị khoảng thời gian đồng hồ để áp dụng cho đối tượng ban đầu ( $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696005 hoặc $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696006) để đến $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696007. Quá trình này không phải lúc nào cũng có thể đảo ngược. Phương pháp này nhận thức được các thay đổi DST và do đó có thể trả về một khoảng $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696008, theo một trong các ví dụ. Nếu bạn muốn tính toán theo thời gian tuyệt đối, bạn cần chuyển đổi cả ________ 15/________ 20 và $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696007 sang UTC trước. Ví dụVí dụ #1 DateTimeIMMutable :: Diff () Ví dụDateTimeImmutable::diff() example Phong cách hướng đối tượng $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); $diff = $start->diff($end); $daysInSecs = $diff->format('%r%a') * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 2841696002 Thông số $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); $diff = $start->diff($end); $daysInSecs = $diff->format('%r%a') * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 2841696003
$start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696003 Ngày để so sánh với.DateTimeInterface::diff() during DST changeover $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); $diff = $start->diff($end); $daysInSecs = $diff->format('%r%a') * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 2841696004
$start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696004 Khoảng thời gian có nên bị buộc là tích cực?DateTime object comparison
$start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); $diff = $start->diff($end); $daysInSecs = $diff->format('%r%a') * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 2841696005
$start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696004 bool(false) bool(true) bool(false) Khoảng thời gian có nên bị buộc là tích cực?
Phương pháp này nhận thức được các thay đổi DST và do đó có thể trả về một khoảng $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696008, theo một trong các ví dụ. Nếu bạn muốn tính toán theo thời gian tuyệt đối, bạn cần chuyển đổi cả ________ 15/________ 20 và $start = new DateTime('2011-12-31 00:00:00'); $end = new DateTime('2021-01-01 00:00:00'); echo $end->getTimestamp() - $start->getTimestamp(); // output: 2841696007 sang UTC trước. Làm thế nào tôi có thể nhận được ngày thứ hai giữa hai ngày trong PHP?Php PHP nhận được vài giây giữa 2 lần mã câu trả lời.. $ d1 = DateTime mới ("2018-01-10 00:00:00") ;. $ d2 = DateTime mới ("2019-05-18 01:23:45") ;. $ intercal = $ d1-> diff ($ d2) ;. $ diffinSeconds = $ intercal-> s; // 45 .. $ diffinMinutes = $ intercal-> i; // 23 .. $ diffinhours = $ intercal-> h; //số 8.. $ diffindays = $ intercal-> d; // 21 .. Làm thế nào tôi có thể nhận được phút giữa hai ngày trong PHP?$ min = $ internal -> ngày * 24 * 60; $ min += $ intercal -> h * 60; $ min += $ intercal -> i; // in kết quả trong định dạng phút. $min += $interval ->h * 60; $min += $interval ->i; // Printing the Result in Minutes format.
Làm thế nào tôi có thể so sánh hai lần trong PHP?Phương pháp diff () của lớp DateTime tạo ra một đối tượng DateInterval tính toán chênh lệch giữa hai đối tượng ngày/thời gian theo thời gian (tổng số ngày, năm, tháng, ngày, giờ, phút, giây, v.v.).$ datetime_1 = '2022-04-10 11:15:30';$ datetime_2 = '2022-04-12 13:30:45';$ start_dateTime = new DateTime ($ datetime_1); (total days, years, months, days, hours, minutes, seconds, etc.). $datetime_1 = '2022-04-10 11:15:30'; $datetime_2 = '2022-04-12 13:30:45'; $start_datetime = new DateTime($datetime_1);
Làm thế nào để bạn tính toán giây giữa hai lần?Để có được tổng số giây giữa hai lần, bạn nhân chênh lệch thời gian với 86400, đó là số giây trong một ngày (24 giờ * 60 phút * 60 giây = 86400).Ghi chú.multiply the time difference by 86400, which is the number of seconds in one day (24 hours * 60 minutes * 60 seconds = 86400). Note. |