[diff] ある日付からある日付まで何日間かを取得する

 
文書番号:20777




ある日付からある日付まで何日間かを調べたいときの処理です。

【関数】

diff

【引数】

引数 説明
第1引数 開始の日付を指定します。
第2引数 終了の日付を指定します。

【戻り値】

結果 説明
2つの日付の日数を返します。

【サンプル】



$datetime_fr = new DateTime('2017-09-10');
$datetime_to = new DateTime('2017-09-15');
$interval = $datetime_fr->diff($datetime_to);
echo $interval->format('%a');

>5
このような書き方でも取得できます。


$interval = (strtotime('2017-09-15') - strtotime('2017-09-10')) / ( 60 * 60 * 24);;
echo $interval;

>5
この処理を応用して"現時点の年齢"を計算してみます。


//誕生日を指定します
$birthday = new DateTime('1992-10-09');

$now = new DateTime();
$interval = $now->diff($birthday);
echo $interval->y;

>24
※給与計算なんかで「4月1日時点の年齢」を計算したい場合は$nowのところを4/1にすると計算できます。

【参考情報】

PHP マニュアル diff
http://php.net/manual/ja/datetime.diff.php