Php/docs/datetime.diff

提供:Dev Guides
< Php
移動先:案内検索

DateTime::diff

DateTimeImmutable::diff

DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

DateTime::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diffふたつの DateTime オブジェクトの差を返す


説明

オブジェクト指向型

public DateTime::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false

public DateTimeImmutable::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false

public DateTimeInterface::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false

手続き型

date_diff ( DateTimeInterface $originObject , DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false

ふたつの DateTime オブジェクトの差を返します。


パラメータ

datetime
比較する日付。
absolute
間隔が正の数になるようにするか否か。


返り値

ふたつの日付の差をあらわす DateInterval オブジェクトを返します。 失敗した場合に false を返します

さらに厳密に言うと、戻り値はもともとのオブジェクト ($this または $originObject) を $targetObject にするために適用すべき差分を示しています。 このプロセスは可逆とは限りません。


例1 DateTime::diff() の例

オブジェクト指向型


<?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 オブジェクトの比較

注意:

PHP 5.2.2 以降では、DateTime オブジェクトを 比較演算子 で比較できるようになりました。

<?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)

参考