2016-01-14 29 views
1

我有2個日期時間對象,我使用差異來獲取間隔。然後我想將此間隔添加到另一個日期以便將來獲得日期。這裏是我的代碼:將日期時間間隔添加到日期時間

$start = new DateTime($start_date); 
$stop = new DateTime($end_date); 
$interval = $start->diff($stop); 
$now = new DateTime($update_date); 
$now->add($interval); 
return $now->format('Y-m-d H:i:s'); 

要驗證數字被加了,我這樣做:

echo "interval = " . $interval->format("%d days, %h hours and %i minutes"); 
echo "<br/> date = ". $update_date; 
echo "<br/> result = ". $now->format('Y-m-d H:i:s'); 

,我得到這個:

interval = 0 days, 0 hours and 13 minutes 
date = 2016-01-14 21:03:41 
result = 2016-01-14 20:50:22 

所以,如果林將13分鐘我的約會,爲什麼結果少了13分鐘?

+0

不應該這樣讀取$ end而不是$ stop? $ interval = $ start-> diff($ stop); – MacGyer

+0

問題已更新,謝謝指出 – Severian

+0

'$ start_date','$ end_date','$ update_date'的值是什麼? –

回答

0

下面的代碼爲我工作:

$start_date = '2016-01-14 12:12:00'; 
$end_date = '2016-01-14 12:25:00'; 
$update_time = '2016-01-14 16:00:00'; 

$start = new DateTime($start_date); 
$end = new DateTime($end_date); 
$interval = $start->diff($end); 
$now = new DateTime($update_time); 
$now->add($interval); 
echo $now->format('Y-m-d H:i:s'); //2016-01-14 16:13:00 

的工作例如,你可以在這裏找到:https://3v4l.org/P3rKU

+0

你寫道,尤達說話的好處。 ;) –

+0

你是正確的sebastianbrosch,開始日期和結束日期是無序的,間隔時間實際上是負面的,儘管看起來間隔沒有跡象。謝謝,我是 – Severian

0
$start = new DateTime('2016-01-14 21:03:41'); 
$end = new DateTime('2016-01-14 21:30:05'); 
$interval = date_diff($start,$end); 
echo $interval->format("%d days, %h hours and %i minutes")."<br/>"; 
$now = new DateTime('2016-01-14 21:30:05'); 
$now->add($interval); 
echo "Total : ", $now->format('Y-m-d H:i:s'); 

試試這個。