PHP dateperiod函数不返回任何东西

问题描述:

我需要找到一组日期之间的日期,所以我试图使用它的DatePeriod。我开始尝试这个示例代码:PHP dateperiod函数不返回任何东西

$start = new DateTime('2012-07-01'); 
$interval = new DateInterval('P7D'); 
$end = new DateTime('2012-07-31'); 

$period = new DatePeriod($start, $interval, $end,DatePeriod::EXCLUDE_START_DATE); 
var_dump($period); 

DateTime和DateInterval对象var_dump正确的数据。但DatePeriod对象不给我任何范围! object(DatePeriod)#5 (0) {}

这工作正常在我的笔记本电脑,我得到日期范围返回。问题是当我在我的服务器上运行这个。服务器中的PHP版本是5.3.3。 PHP站点声明DatePeriod只需要PHP> -5.3.0。

有没有人有什么建议在这里发生了什么?非常感激!

+0

[可能是一个版本的东西(https://3v4l.org/0IjXK) –

在PHP版本5.4.17之前,DatePeriod对象的内部是“隐藏的”,并且在var_dumped时不会透露任何东西。

但是,它仍然是可迭代的,所以foreach环比DatePeriod对象仍然会返回一系列日期这一时期

+0

不知道, –

+0

不幸的是它也不会迭代我。我把它放在另一台装有PHP 5.6的服务器上,它就像一个魅力一样。不幸的是,我不能使用该服务器来运行这个脚本... –

+0

不幸的是[3v4l.org](https://3v4l.org/0CkWF)现在只向上覆盖PHP 5.4。 –