PHP: diff và date_diff
(PHP 5 >= 5.3.0, PHP 7)
DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Trả về sự khác nhau giữa 2 đối tượng DateTime.
Dạng hướng đối tượng
public DateInterval DateTime::diff ( DateTimeInterface $datetime2
[, bool $absolute
= FALSE
] )
public DateInterval DateTimeImmutable::diff ( DateTimeInterface $datetime2
[, bool $absolute
= FALSE
] )
public DateInterval DateTimeInterface::diff ( DateTimeInterface $datetime2
[, bool $absolute
= FALSE
] )
Dạng hướng thủ tục
DateInterval date_diff ( DateTimeInterface $datetime1
, DateTimeInterface $datetime2
[, bool$absolute
= FALSE
] )
Trả về sự khác nhau giữa hai đối tượng DateTimeInterface.
Các tham số
datetime
Ngày so sánh
absolute
Dùng khi bắt buộc thời gian phải là một số dương.
Giá trị trả về
Đối tượng DateInterval sẽ trả về sự khác nhau giữa hai ngày hoặc FALSE
nếu có lỗi.
Ví dụ
Ví dụ #1: DateTime::diff()
Dạng hướng đối tượng
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
Dạng hướng thủ tục
<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
Các ví dụ trên sẽ in ra:
+2 days
Ví dụ #2: so sánh đối tượng DateTime
Lưu ý:
Từ phiên bản PHP 5.2.2, các đối tượng DateTime có thể được so sánh với nhau bằng cách sử dụng các phép toán so sánh.
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>
Ví dụ trên sẽ in ra:
bool(false)
bool(true)
bool(false)