2017-10-05 88 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

相關問題