PHP
datetime

PHPのDateTimeで日付差分を得る時は、dではなくdaysを使う。

最初、以下のように、日数を算出していた。

sample1.php
$day = new DateTime('2018-04-05');
$day2 = new DateTime('2018-04-11');
$diff = $day->diff($day2);
echo diff->d;

結果: 6

が、この場合だと、日だけを見て差分を見ているので、月が変わっても結果は同じになってしまう。

sample2.php
$day = new DateTime('2018-03-05');
$day2 = new DateTime('2018-04-11');
$diff = $day->diff($day2);
echo diff->d;

結果: 6 ← 本来なら37日が正しい

年月を含めて日数を見るなら

sample3.php
$day = new DateTime('2018-03-05');
$day2 = new DateTime('2018-04-11');
$diff = $day->diff($day2);
echo diff->days;

結果: 37

日数を算出する場合は、dではなく、daysを使う。