My Form 2 alan vardır - Time_from ve Time_toDateTime eklemek 1 gün
Şimdi ben ex (o günlerde arasında bir fark gidecekseniz ise) her gün için benim veritabanında bir giriş eklemek gerekir. Time_from = 2013/08/26 08:00:00 ve Time_to = 16:00:00 2013/08/28 Yani benim veritabanında ben 3 girişleri
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
Yani bu amaçla i yaptık almalısınız Bu iki tarih arasındaki farkı ilk bulduğum ve daha sonra bu 2 tarihin olduğu kadar çok gün içinde çalışacak bir for döngüsü kullanıyorum ve sonunda 1 gün ekledim.
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');
}
}
Bazı nedenlerden dolayı kod çalışmaz.
ben sadece ilk gün benim veritabanına kaydedilir date_modify alanını kaldırdığınızda
Ama kodunda date_modify ile, sadece son gün kaydedilir (döngü ancak o zaman bir kez çalışıyor Tahmin) veritabanı.
$ interval-> d böylece döngü sadece Böylece bir kez fark – Anigel
çalışacaktır verilen zamanlarda hayır "günler" fark sadece saatler var, günler arasında sadece saat i gösteriliyor? – CreamYGEEK
http://phpfiddle.org/main/code/3r1-6hc $ interval-> h aralık yerine>> d – Anigel