Frage nach Datum Funktion in PHP Ich möchte einen Datumsbereich in einer Woche (Montag-Samstag), dass das Datum gleich dem heutigen Datum in einer Dropdown-Option folgen. Sagen wir heute am 16. August, dann wird der Bereich vom 15. August bis zum 20. August, vom 22. August bis zum 27. September, vom 29. August bis zum 3. September usw. beginnen.Ranging Datum gleich heute Datum
Ich benutze diese Syntax
<?php
for ($i = 0; $i < 8; $i++) {
echo '<option value="'.date("Ymd", strtotime("$i weeks monday")).'">'.date("d F", strtotime("$i weeks monday"))." - ".date("d F", strtotime("$i weeks saturday")).'</option>';
}
}
?>
Es funktioniert in Montag nur perfekt, aber am nächsten Tag, wenn ich die Web öffnen, zeigt es Montag nächste Woche für alle Option. Es scheint, dass, wenn Montag verging, dieser Montag ist aus der Liste in dieser Woche und nächsten Montag wird diese Woche Montag. Es ist ein Fehler mit strtotime oder es gibt eine bessere strtotime Syntax zu verwenden? Wenn möglich, möchte ich vermeiden, zu verwenden, wenn Datum zu überprüfen, aber wenn nicht, dann gibt es eine mögliche einfache Syntax in Strtotime zu verwenden?
was bedeutet P1w/P8W bedeutet im Intervall? Verwenden Sie niemals DateTimeImmutable() vor –
'P1W ~ bedeutet" Zeitraum 1 Woche ". Von dort können Sie raten, was "P8W" bedeutet. :) 'DateTimeImmutable()' ist genau wie 'DateTime()', gibt aber immer ein neues Objekt zurück, anstatt das Original zu ändern. Je nachdem, was Sie tun, ist es egal, welche Sie verwenden. –
Ich habe es versucht und es funktioniert, vielen Dank. Ich hoffe, es ist nicht kaputt, wenn sich der Tag ändert. Wenn ich strtotime benutze ('Montag diese Woche'), kommt das Ergebnis wie ich es vorher beschrieben habe in Frage. Aber wenn in Ihrem Code funktioniert es sogar die Zeile ist genau das gleiche? Weißt du etwas darüber ? –