2017-10-05 47 views
0

我是新来的php,我仍然试图理解对象的使用情况。为另一个日期对象赋值并仅更改一个

这是我的脚本:

$Date1=date_create_from_format('Y-m-d', '2017-01-01'); 
$Date2=$Date1; 
$Date2->modify('last day of'); 
echo '</br>Date1='.$Date1->format('Y-m-d');//output: Date1=2017-01-31 
echo '</br>Date2='.$Date2->format('Y-m-d');//output: Date2=2017-01-31 

我的目标是有两个不同的日期对象:

从字符串日期1号;

包含月份

我怎么能这样做的最后一天,2号?

回答

2

使用clone创建对象的相同副本

$Date1=date_create_from_format('Y-m-d', '2017-01-01'); 
$Date2=clone $Date1; 
$Date2->modify('last day of'); 
echo '</br>Date1='.$Date1->format('Y-m-d'); 
echo '</br>Date2='.$Date2->format('Y-m-d'); 
2

试试这个:
$Date2 = clone $Date1;

1
$Date1 = DateTimeImmutable::createFromFormat('Y-m-d' '2017-01-01'); 

您所使用的方法创建一个可变对象,但你正在寻找一个不变一。不可变的一个将返回一个新的日期对象,而不是改变当前的一个。

有关DateTimeImmutable类的信息,请参见documentation

+0

感谢您的有用提示,但我不需要一个不可变的日期对象:我只需要两个不同的日期 – genespos

+0

这正是不变的日期对象给你的:当你调用它的修改时,它返回第二个为你的日期对象,所以你有两个日期。 –

+0

是的,但(后来在代码中)我需要自由修改第一个对象 – genespos

相关问题