Как получить суммарные дни из PHP DateTime :: diff? - PullRequest
2 голосов
/ 25 марта 2010
<code>$now = new DateTime('now');
$tomorrow = new DateTime('tomorrow');
$next_year = new DateTime('+1 year');

echo "<pre>";
print_r($now->diff($tomorrow));
print_r($now->diff($next_year));
echo "
"; DateInterval Object ( [у] => 0 [м] => 0 [d] => 0 [ч] => 10 [i] => 17 [s] => 14 [инвертировать] => 0 [дни] => 6015 ) DateInterval Object ( [y] => 1 [м] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [инвертировать] => 0 [дни] => 6015 )

есть идеи, почему «дни» показывают 6015? почему он не показывает общее количество дней? Разница в 1 год для меня ничего не значит, так как месяцы имеют разное количество дней.

Ответы [ 5 ]

6 голосов
/ 26 марта 2010

Более подходящим отчетом об ошибке будет # 51184 , который фокусируется на проблеме Windows, сообщающей 6015 дней (не-Windows, кажется, ОК)

Пока не было получено никакой обратной связи относительно того, влияет ли исправление для # 49778 (которое касается другой проблемы), или если проблема не устранена. Если бы кто-нибудь здесь мог взглянуть и дать отзыв, это было бы очень любезно с вашей стороны.

2 голосов
/ 18 августа 2012

Пожалуйста, обновитесь до последней версии php. Эта ошибка возникает только на php 5.3 VC6.

0 голосов
/ 26 марта 2010

Хорошо, похоже, http://bugs.php.net/bug.php?id=49778 - это проблема здесь.

0 голосов
/ 26 марта 2010

это ошибка http://bugs.php.net/bug.php?id=49778

Спасибо за сообщение об ошибке.

Дни действительно не установлены при создании DateInterval с использованием конструктор. Сложность в том, что это невозможно определить количество дней, когда указаны месяцы или годы, так как они различаются по длине. Можно заполнить поле дней в некоторых случаи и оставить его 0 в других. В любом случае это должно быть задокументировано что поле дней не всегда доступно.

0 голосов
/ 25 марта 2010
$now = new DateTime('now');

должно быть

$now = new DateTime(''2010-01-01 00:00:00'');

больше в руководстве http://nl3.php.net/manual/en/datetime.diff.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...