PHP `DateTime :: days` возвращает корзину?

Класс PHP DateInterval имеет свойство «дни». Согласно руководству, он возвращает «Общее количество дней, когда промежутки пройдены. Если это неизвестно, дни будут ЛОЖНЫ».

В моем случае код:

 $d = new DateInterval('P1Y'); echo $d->days; 

возвращает -99999

и такой код

 $a = DateTime::createFromFormat("dmY", "01.01.2010"); $b = DateTime::createFromFormat("dmY", "03.01.2010"); $d = $b->diff($a); echo $d->days; 

возвращает 6015

Я что-то неправильно понял?

DateInterval ошибочен на платформе Windows. См. Ошибку # 51183 . Официальный ответ кажется «использовать VC9 сборки вместо этого на данный момент».

Я просто запускаю ваши примеры, и они должны работать. В частности, я получил:

  $d = new DateInterval('P1Y'); var_dump($d->days); // result: int 0 $a = DateTime::createFromFormat("dmY", "01.01.2010"); $b = DateTime::createFromFormat("dmY", "03.01.2010"); $d = $b->diff($a); var_dump($d->days); // result: int 2 

Я запускаю XAMPP для Linux 1.7.3a с PHP 5.3.1 на Linux Mint 10.

Можете ли вы, пожалуйста, рассказать мне ваше точное решение, которое вам нужно …

Я использовал код ниже,

 $interval = new DateInterval('P2Y4DT6H8M'); 

echo $ interval-> d;

он дает o / p как 4

если я так использую,

 $interval = new DateInterval('P2Y'); echo $interval->d; 

он дает o / p как 0

Таким образом, он вернет день, указанный вами в Dateinterval (), иначе он вернет ноль ..

U скажите мне точные требования, пожалуйста ………. 🙂