DateTime add 1 Tag
Meinem Formular 2 Felder Time_from und Time_to
Nun muss ich hinzufügen, einen Eintrag in meiner Datenbank für jeden Tag (Wenn es einen Unterschied zwischen jenen Tagen)
ex. Time_from = 2013-08-26 08:00:00 und Time_to = 2013-08-28 16:00:00
Also in meiner Datenbank, ich sollte 3 Einträge
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
Also für diesen Zweck habe ich eine Methode, wo ich zuerst den Unterschied zwischen den 2 Terminen und dann bin ich mit einer for-Schleife, die ausgeführt wird, wie viele Tage Sie im Unterschied zu diesen 2 Terminen, und am Ende ich bin nur um 1 Tag.
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');
}
}
Für einige Grund, der code funktioniert nicht.
Wenn ich entfernen Sie die date_modify Feld nur der erste Tag wird gespeichert in meine Datenbank (Denke mal die for-Schleife läuft nur einmal dann)
Aber mit der date_modify in meinem code, nur der Letzte Tag in der Datenbank gespeichert wird.
Also der Unterschied zwischen den Tagen ist nur gezeigt, dass ich Stunden?
phpfiddle.org/main/code/3r1-6hc sind Sie sicher, dass Sie nicht wollen, $Intervall->h eher als Intervall->d
InformationsquelleAutor CreamYGEEK | 2013-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie verwenden Sie die Funktion von Datatime Objekt
hier bin ich geben Ihnen ein Beispiel, fügen Sie eine 1 in Ihrer nach Datum wie
AUSGABE
Hoffe, es wird sicher Ihnen helfen, Ihr Problem zu lösen.
bitte trace-Datum, bevor Sie den pass in new DateTime('dein Datum'); und die Funktion sollte wieder jedes mal neue Datum 3 Zeiten, die Sie anrufen oder der Rückgabewert aus der Funktion.
Sie Lösung scheint zu funktionieren .. Anscheinend gibt es ein Jquery problem, dass ist für den bug verantwortlich ..
froh, Ihnen zu helfen @CreamYGEEK
InformationsquelleAutor liyakat
Können Sie es auch tun:
InformationsquelleAutor Marcio Mazzucato