PHP`DateTime :: days`返回垃圾箱?

时间:2011-02-08 13:11:59

标签: php datetime php-5.3

PHP类DateInterval具有属性“days”。根据手册它返回 “间隔跨越的总天数。如果这是未知的,则天数将为FALSE。”

在我的情况下代码:

$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 个答案:

答案 0 :(得分:7)

DateInterval是Windows平台上的错误。见bug #51183。官方的答案似乎是“暂时使用VC9版本”。

答案 1 :(得分:2)

我只是运行你的例子,他们应该工作。具体来说,我得到了:

    $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

我在Linux Mint 10上使用PHP 5.3.1运行XAMPP for Linux 1.7.3a。

答案 2 :(得分:0)

请你告诉我你需要的确切解决方案......

我使用了以下代码,

$interval = new DateInterval('P2Y4DT6H8M');

echo $ interval-> d;

它将 o / p设为4

如果我这样使用,

$interval = new DateInterval('P2Y');

echo $interval->d;

它将 o / p设为0

所以它将返回你在Dateinterval()中给出的那一天,否则它将返回零..

你告诉我你的具体要求请.......... :)