Когда я вычитаю 1 день из объекта datetime, он делает то, что должен, он вычитает один день. но если я использую diff () для сравнения двух объектов datetime, то он снова вычитает день. Вы можете увидеть в следующем примере кода:
$currTime = new DateTime();
$lastPurge = new DateTime("14:33");
$lastPurge->sub(new DateInterval("P1D"));
echo $lastPurge->format("d/m/Y H:i:s\n\n");
$diff = $currTime->diff($lastPurge);
echo $lastPurge->format("d/m/Y H:i:s\n\n");
Вывод этого кода:
10/11 / 2010 14: 33: 00
09/11/2010 14: 33: 00
Как видите, после вызова sub () он вычитал 1 день, как и ожидалось. Но затем после использования diff () он вычитает другой день. Почему еще один день вычитается после использования diff () для вычисления разницы? Это должно сделать это?