我的形式有2場 - Time_from和Time_to日期時間加1天
現在我需要添加在我的數據庫每天的條目(如果是孤單那些日子之間的差異) 前。 Time_from = 2013年8月26日08:00:00和Time_to = 2013年8月28日16:00:00 所以在我的數據庫中,我應該得到3項
Time_from = 2013-08-26 08:00:00 and Time_to = 2013-08-26 16:00:00
Time_from = 2013-08-27 08:00:00 and Time_to = 2013-08-27 16:00:00
Time_from = 2013-08-28 08:00:00 and Time_to = 2013-08-28 16:00:00
因此,對於這個目的我已經做了方法,在那裏我首先找到這兩個日期之間的差異,然後我使用for循環,這將運行多天的差異這兩個日期,最後我只是增加1天。
public function createOffer($offer)
{
$time_from = new DateTime($offer->time_from);
$time_to = new DateTime($offer->time_to);
$interval = $time_from->diff($time_to);
for ($counter = 0; $counter <= $interval->d; $counter++) {
$offer->time_from = $time_from->format('Y-m-d H:i:s');
$offer_time_to = new DateTime($time_from->format('Y-m-d'));
$offer_time_to->setTime($time_to->format('H'), $time_to->format('i')
, $time_to->format('s'));
$offer->time_to = $offer_time_to->format('Y-m-d H:i:s');
if ($offer->validate()) {
$offer->save();
}
date_modify($time_from, '+1 day');
}
}
由於某些原因,代碼無法正常工作。
當我刪除date_modify場只是第一天將被保存在我的數據庫(猜for循環只運行一次,然後)
但在我的代碼date_modify,只有最後一天被保存在數據庫。
$ interval-> d沒有「天」的區別,只有時間,在時代賦予這樣的循環將只運行一次 – Anigel
等方面差異幾天之間只顯示i小時? – CreamYGEEK
http://phpfiddle.org/main/code/3r1-6hc你確定你不想要$ interval-> h而不是interval-> d – Anigel