PHP `DateTime :: days` возвращает мусор? - PullRequest
7 голосов
/ 08 февраля 2011

PHP Class DateInterval имеет свойство "days". Согласно инструкции возвращается «Общее количество дней, на которое распространяется интервал. Если это неизвестно, дни будут ЛОЖЬМИ».

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

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

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

и код, подобный этому

$a = DateTime::createFromFormat("d.m.Y", "01.01.2010");
$b = DateTime::createFromFormat("d.m.Y", "03.01.2010");

$d = $b->diff($a);
echo $d->days;

возвращает 6015

Я что-то не так понял?

Ответы [ 3 ]

7 голосов
/ 08 февраля 2011

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

2 голосов
/ 08 февраля 2011

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

    $d = new DateInterval('P1Y');
    var_dump($d->days);
    // result: int 0


    $a = DateTime::createFromFormat("d.m.Y", "01.01.2010");
    $b = DateTime::createFromFormat("d.m.Y", "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.

0 голосов
/ 08 февраля 2011

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

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

$interval = new DateInterval('P2Y4DT6H8M');

echo $ interval-> d;

дает o / p как 4

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

$interval = new DateInterval('P2Y');

echo $interval->d;

дает o / p как 0

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

U, скажите мне ваше точное требование, пожалуйста ..........:)

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