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

PHP`DateTime::days`返回垃圾?,php,datetime,php-5.3,Php,Datetime,Php 5.3,PHP类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

PHP类
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


我误解了什么吗?

我只是运行了您的示例,它们应该会起作用。具体来说,我得到:

    $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上使用PHP5.3.1运行XAMPP for Linux 1.7.3a。

DateInterval在windows平台上有缺陷。看见官方的答案似乎是“现在就使用VC9版本”

你能告诉我你需要的确切解决方案吗

我使用了下面的代码

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

它将o/p设为4

如果我像这样使用

$interval = new DateInterval('P2Y');

echo $interval->d;
它将o/p设为0

因此它将返回Dateinterval()中给定的日期,否则它将返回零


请告诉我您的确切要求…………)

这个bug是一年前报告的,他们将其标记为“不会修复”,因为“这不是我们可以轻易修复的东西”。他们病了吗!?我说的不是“->d”,而是“->d天”。根据手册,它必须是一个总天数,但它不是。。。至少不是在Windows中。