Ich beginne mit einem Date 2010-05-01
und ende mit 2010-05-10
. Wie kann ich all diese Daten in PHP durchlaufen?
206
Benötigt PHP5.3:
$begin = new DateTime('2010-05-01');
$end = new DateTime('2010-05-10');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("l Y-m-d H:i:s\n");
}
Dies gibt alle Tage im definierten Zeitraum zwischen $start
und aus $end
. Wenn Sie den 10. einschließen möchten, setzen Sie ihn $end
auf den 11. Platz. Sie können das Format nach Ihren Wünschen anpassen. Siehe PHP-Handbuch für DatePeriod .
$begin->setTime(0,0); $end->setTime(12,0);
oder das Initialisieren mit der Uhrzeit des Startdatums, da jede Zeit nach dem Enddatum das Enddatum in die Schleife einschließt. Nicht die eleganteste Lösung, aber die beste Option, solange es keine richtige Flagge gibt.Dies beinhaltet auch das letzte Datum
Wenn Sie das letzte Datum nicht benötigen, entfernen Sie es einfach
=
aus dem Zustand.quelle
$begin
dies nach der Schleife anders sein wird. Diese Schleife ändert das von erstellte Objektnew DateTime( "2015-07-03" )
. Daher sollten Sie die DateTimeImmutable-Versionen verwenden. Sie benötigen jedoch einige weitere Modifikationen, um sie zu verwenden.Das Konvertieren in Unix-Zeitstempel erleichtert die Datumsberechnung in PHP:
Wenn Sie PHP mit einer Zeitzone mit Sommerzeit verwenden, müssen Sie eine Zeit hinzufügen, die nicht 23:00, 00:00 oder 1:00 ist, um sich vor Tagen zu schützen, die übersprungen oder wiederholt werden.
quelle
Kopie von php.net Beispiel für inklusive Bereich:
quelle
oder
quelle
Hier ist noch eine einfache -
Beispiel:
quelle
Benutzer diese Funktion: -
Nutzungs- / Funktionsaufruf: -
Erhöhung um einen Tag: -
Erhöhung um Monat: -
Verwenden Sie den dritten Parameter, wenn Sie das Datumsformat einstellen möchten: -
quelle
Hier ist ein Weg:
Das Ergebnis von $ weeksInMoth ist eine Reihe von Wochenendtagen!
quelle
Sie können auch so iterieren. Das
$_POST['date']
kann von Ihrer App oder Website$_POST['date']
verbeult werden"21-12-2019"
. Stattdessen können Sie hier auch Ihre Zeichenfolge platzieren . Beides wird funktionieren.quelle
Wenn Sie Laravel verwenden und Carbon verwenden möchten, ist die richtige Lösung die folgende:
Denken Sie daran, hinzuzufügen:
quelle
quelle