Returns the difference between two DateTime objects

DateTime::diff

DateTimeImmutable::diff

DateTimeInterface::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diffReturns the difference between two DateTime objects

說明

物件導向風格

public DateTime::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeImmutable::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeInterface::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval

過程化風格

date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Returns the difference between two DateTimeInterface objects.

參數

datetime

The date to compare to.

absolute

Should the interval be forced to be positive?

返回值

The DateInterval object represents the difference between the two dates.

The return value more specifically represents the interval to apply to the original object ($this or $originObject) to arrive at the $targetObject. This process is not always reversible.

範例

示例 #1 DateTime::diff() example

物件導向風格

<?php
$origin 
= new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval $origin->diff($target);
echo 
$interval->format('%R%a days');
?>

過程化風格

<?php
$origin 
date_create('2009-10-11');
$target date_create('2009-10-13');
$interval date_diff($origin$target);
echo 
$interval->format('%R%a days');
?>

以上例程會輸出:

+2 days

示例 #2 DateTime object comparison

注意:

DateTime objects can be compared using comparison operators.

<?php
$date1 
= new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 $date2);
var_dump($date1 $date2);
?>

以上例程會輸出:

bool(false)
bool(true)
bool(false)

參見

  • DateInterval::format() - Formats the interval
  • DateTime::add() - 給一個 DateTime 對像增加一定量的天,月,年,小時,分鐘 以及秒。
  • DateTime::sub() - 對一個 DateTime 對像減去一定量的 日、月、年、小時、分鐘和秒。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *