Many people have commented on doing a reverse interval on a date time. I personally find a backwards year to be a little strange to think about and instead opt to work with just intervals. This is the easiest I have found.
$one_year = new DateInterval['P1Y'];
$one_year_ago = new DateTime[];
$one_year_ago->sub[$one_year];
?>
Instead of:
$one_year_ago = new DateInterval[ "P1Y" ];
$one_year_ago->invert = 1;
$one_year_ago = new DateTime[];
$one_year_ago->add[$one_year];
?>
Hôm nay trong bài đăng này, chúng ta sẽ xem cách tính toán và sau đó lấy chênh lệch thời gian giữa hai thời điểm trong PHP
Bạn có thể nhận thấy trên mạng truyền thông xã hội như Facebook hiển thị một bài đăng được xuất bản “1 giờ trước” hoặc “2 phút trước” hoặc đại loại như thế. Trong trường hợp đó, nó cũng thực sự đang tính chênh lệch múi giờ. bây giờ tôi sẽ xem cách dễ nhất để nhận chênh lệch múi giờ trong PHP
Hãy theo tôi…
Lấy sự khác biệt giữa hai lần là một nhiệm vụ khá dễ dàng. PHP đã có sẵn lớp DateTime có thể làm điều đó
Dưới đây là một ví dụ mà chúng tôi đã lấy hai chuỗi ngày thời gian và hiển thị nó
$time1 = new DateTime['2017-01-23 18:16:25']; $time2 = new DateTime['2019-01-23 11:36:28']; $timediff = $time1->diff[$time2]; echo $timediff->format['%y year %m month %d days %h hour %i minute %s second']."
";
Đoạn mã PHP trên sẽ in kết quả mà chúng ta có thể thấy bên dưới
1 year 11 month 30 days 17 hour 20 minute 3 second
Bạn cũng có thể in riêng giây, phút, giờ, ngày, tháng và năm chỉ bằng cách gọi các phương thức like từ lớp DateTime
echo $timediff->s."
"; echo $timediff->i."
"; echo $timediff->h."
"; echo $timediff->d."
"; echo $timediff->m."
"; echo $timediff->y."
";
Ngoài ra, đọc
- Hiển thị mã HTML trên trang web bằng PHP
- Gửi SMS đến số điện thoại bằng Twilio trong PHP
Nhận chênh lệch múi giờ với thời gian hiện tại
Bây giờ nếu chúng ta muốn lấy chênh lệch thời gian giữa thời gian hiện tại và thời gian trước đó, thì chúng ta chỉ cần đặt đối tượng DateTime hiện tại là “new DateTime[]” như bên dưới
$time = new DateTime['2018-01-23 18:16:25']; $timediff = $time->diff[new DateTime[]]; echo $timediff->format['%y year %m month %d days %h hour %i minute %s second']."
";
Đầu ra sẽ giống như bạn có thể thấy bên dưới tùy thuộc vào thời gian hiện tại
1 year 0 month 12 days 23 hour 28 minute 22 second
Vậy là chúng ta đã tính thành công chênh lệch giữa hai thời điểm hoặc ngày tháng. Tôi hy vọng bạn đã hiểu
Đối với điều này, chúng tôi cần một ngày bắt đầu và một ngày kết thúc. Chúng tôi sẽ tính chênh lệch thời gian của họ tính bằng phút bằng cách sử dụng hàm date_diff[]
. Cú pháp đúng để sử dụng hàm này như sau
date_diff[$DateTimeObject1, $DateTimeObject2];
Hàm tích hợp sẵn date_diff[]
có hai tham số. Các chi tiết của các thông số của nó như sau
format['%R%a days'];
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
3bắt buộcĐó là một đối tượng format['%R%a days'];
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
4. Nó đại diện cho ngày bắt đầu. format['%R%a days'];
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
5bắt buộcNó cũng là một đối tượng format['%R%a days'];
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
4, Nó đại diện cho ngày kết thúcHàm này trả về sự khác biệt giữa ngày bắt đầu và ngày kết thúc khi thành công. Nó trả về FALSE khi thất bại
Chương trình dưới đây cho thấy cách chúng ta có thể sử dụng hàm date_diff[]
để tính chênh lệch múi giờ tính bằng phút
format['%R%a days'];
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
Hàm date_diff[]
đã trả về một đối tượng đại diện cho sự khác biệt giữa hai ngày
đầu ra
The difference in days is:+366 days
The difference in minutes is:527040 minutes
Bây giờ chúng ta sẽ tìm sự khác biệt giữa thời gian
h;
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo["The difference in minutes is:"];
echo $minutes.' minutes';
?>
đầu ra
The difference in hours is:5
The difference in minutes is:300 minutes
Trong PHP, chúng ta cũng có thể sử dụng các công thức toán học khác nhau để tính chênh lệch thời gian tính bằng phút. Chương trình nhận chênh lệch múi giờ tính bằng phút như sau