2014-08-28 92 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>'; 
}