2015-04-23 77 views
3

如何在不修改原始內容的情況下將天數添加到DateTime對象。 StackOverflow上的每個問題看起來都是大約date而不是DateTime,而那些提到DateTime的則討論修改原始問題。將日期添加到PHP的DateTime中 - 無需修改原始內容

例如,

$date = new DateTime('2014-12-31'); 
$date->modify('+1 day'); 

但你怎麼能計算出一個日期提前幾天沒有修改原始,所以你可以寫這樣的:

if($dateTimeNow > ($startDate + $daysOpen days) { 
    // 
} 

我總是可以只創建另一個DateTime對象,但我而是以上述方式進行。

回答

1

你可以在一個單獨的變量原來的變量,並沒有。其他變量中的天數,因此您在不同變量中都有(原始和更新的)值。

$startDate = new DateTime('2014-12-31');  
    $endDate = clone $startDate; 
    $endDate->modify('+'.$days.'days'); 
    echo $endDate->format('Y-m-d H:i:s'); 

您可以隨時使用clone,太:

$datetime = clone $datetime_original; 
+1

嗨玉萍,這是一個有效的選項,但我在我的問題中提到:「我總是可以創建另一個DateTime對象,但我寧願按照上面的方法來做。」 –

+0

你好查克!我只是覺得這可能是有用的! –

+1

我寧願建議'克隆',而不是做兩次相同的實例化... – deceze