php DateTime ведет себя странно

Так что у меня есть этот код, чтобы определить разницу между текущим временем и значением поля datetime из базы данных.

Этот код дает странный вывод (примеры ниже) для дат, которые не в том же году.

$deadline      = new DateTime($someDeadline, new DateTimeZone('CET'));
$time_now      = new DateTime('NOW', new DateTimeZone('CET'));
$overdue_until = $time_now->diff($deadline);
echo $overdue_until->format('%R %d day/s, %h hours, %i minutes');

Пример результатов:

Понедельник 9 февраля 2015 05:28:23 PM получает разницу + 28 дней / с, 17 часов, 6 минут от текущего времени.

Среда, 14 января 2015 г. 11:28:43 + 2 дня / с, 10 часов, 34 минуты

-1

Решение

%d получает до 31 дня. После этого он сбрасывается в ноль и месяцы увеличиваются. Если вы хотите общее количество дней, если вам нужно использовать %a

echo $overdue_until->format('%R %a day/s, %h hours, %i minutes');

Демо 1
Демо 2

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]