Я знаю, как рассчитать количество дней между двумя датами, как показано ниже, но как я могу вернуть разницу в качестве отрицательного числа, если это было в прошлом?
Это то, что я использую:
$today = new DateTime('now'); // today is 2015-09-02
$date1 = new DateTime("2015-08-13"); // 20 days ago
$diff = $today->diff($date1)->format("%a");
echo "diff is $diff"; // shows 20 but I want it to return -20
Я попытался изменить переменные, но, похоже, он не заботится о заказе.
DateInterval
имеет свойство invert
которое указывает, являются ли они положительными или отрицательными.
Вы можете вывести его как
$interval->format("%r%a");
r
означает
Знак "-", когда отрицательный, пустой, когда положительный
$today = new DateTime('now'); // today is 2015-09-02
$date1 = new DateTime("2015-08-13"); // 20 days ago
$diff = $today->diff($date1)->format("%r%a");
Выход будет -20. Также вы можете поменять даты, подобные следующему примеру. Выход будет 20.
$today = new DateTime('now'); // today is 2015-09-02
$date1 = new DateTime("2015-08-13"); // 20 days ago
$diff = $date->diff($today)->format("%r%a");