2014-08-28 114 views
0

你好的人這裏是我下面的代碼,添加分鐘,日期時間,直到它到達時期

 for($minutes_to_add=30;$start_date->format('Y-m-d H:i') == $end_date->format('Y-m-d H:i');$minutes_to_add+30) 
     { 
      $start_date->add(new DateInterval('PT' . $minutes_to_add . 'M')); 
      $time_period = $start_date->format('Y-m-d H:i'); 
      echo $time_period; 
      echo '<br>'; 
     } 

蔭嘗試添加30 minutes$start_date,直到它達到end_date ......它不顯示任何內容...用沒有錯誤信息... start_dateend_date都在newDatetime()裏面有什麼辦法解決這個問題?在PHP

+0

我認爲你需要使用<=的==代替 – Naruto 2014-08-28 09:13:01

+0

@Naruto是的,這是我的猜測..我會接受你的答案,如果它被回答... – Friend 2014-08-28 09:15:20

+1

你不需要格式化DateTime對象,他們可以直接比較。如果*必須*將它們轉換,使用'getTimestamp()',那麼至少你使用整數而不是字符串。 – lxg 2014-08-28 09:34:26

回答

0

這將是一個 '清潔' 的解決方案,同時在公告稱$起始日期$ END_DATE是datetime對象:

for($minutes_to_add=30;$start_date->getTimestamp() <= $end_date->getTimestamp();$minutes_to_add+30) 
{ 
    $start_date->add(new DateInterval('PT' . $minutes_to_add . 'M')); 
    $time_period = $start_date->format('Y-m-d H:i'); 
    echo $time_period; 
    echo '<br>'; 
} 
相關問題