Datetime 为什么在添加天数时日期变量会发生变化?

Datetime 为什么在添加天数时日期变量会发生变化?,datetime,zend-framework,Datetime,Zend Framework,我想显示2个日期:今天和7天,因此我有: $date1 = new Zend_Date(); //assume today is 01/02/2014 $date2 = new Zend_Date($date1->add(7, Zend_Date::DAY)); print $date1 . ' to ' . $date2; 我希望看到(暂时忽略dateformat): 2014年2月1日至2014年2月8日 但我得到: 2014年2月8日至2014年2月8日 为什么$date1会

我想显示2个日期:今天和7天,因此我有:

$date1 = new Zend_Date();  //assume today is 01/02/2014
$date2 = new Zend_Date($date1->add(7, Zend_Date::DAY)); 

print $date1 . ' to ' . $date2;
我希望看到(暂时忽略dateformat): 2014年2月1日至2014年2月8日

但我得到: 2014年2月8日至2014年2月8日


为什么$date1会随$date2发生变化,以及如何从第一个日期获取第二个日期?

Zend_date的
add
是一种变异操作,即,
add
更改原始日期,而不是只返回一个新的
日期,并添加偏移量

你所能做的就是简单地创建一份原始日期的副本并添加到其中

$date1 = new Zend_Date();  //assume today is 01/02/2014
$date2 = new Zend_Date($date1);
$date2->add(7, Zend_Date::DAY);

谢谢第一次复制,然后添加,而不是直接从源代码计算日期,感觉是不必要的工作。无论如何,这是有效的。