使用此帖https://stackoverflow.com/a/4312630/257629
中的代码尝试使用DatePeriod()
时,我得到一个空对象。我的PHP是版本5.4.3,我看不到任何错误。 DateTime
和DateInterval
似乎会返回正确的对象,但在将其传递给DatePeriod
时,我会留下一个空对象。 (debug
来自CakePHP并输出变量的内容。)
// values passed from form, to a function
// $arrival = 2013-09-05
// $departure = 2013-08-16
$start = new DateTime($arrival);
/*
object(DateTime) {
date => '2013-09-05 00:00:00'
timezone_type => (int) 3
timezone => 'UTC'
}
*/
$interval = new DateInterval('P1D');
/*
object(DateInterval) {
y => (int) 0
m => (int) 0
d => (int) 1
h => (int) 0
i => (int) 0
s => (int) 0
invert => (int) 0
days => false
}
*/
$end = new DateTime($departure);
/*
object(DateTime) {
date => '2013-08-16 00:00:00'
timezone_type => (int) 3
timezone => 'UTC'
}
*/
$period = new DatePeriod($start, $interval, $end);
debug($period);
/*
object(DatePeriod) {
}
*/
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
答案 0 :(得分:1)
$arrival = 2013-09-05
$departure = 2013-08-16
抵达不超过出发。如果您设置$arrival = 2013-08-05
。然后输出
2013-08-05
2013-08-06
2013-08-07
2013-08-08
2013-08-09
2013-08-10
2013-08-11
2013-08-12
2013-08-13
2013-08-14
2013-08-15
答案 1 :(得分:1)
$end
日期早于$start
日期,因为您混淆了$arrival
和$departure
vars