Hi,
ich möchte mit einen Variablen Datum rechnen.
... das in welcher Form vorliegt? Im besten Fall als Unix-Timestamp. Wenn nicht, bekommt man einen solchen relativ leicht.
Das heißt, ich habe einen Gutscheincode, der von Montag-Donnerstag von 18 - 24 Uhr gültig ist, oder von Freitag 18 Uhr bis Sonntag 24 Uhr.
Nun soll das Skript prüfen, ob wir uns an dem Wochentag befinden und in der Zeit zwischen 18 - 24 Uhr, oder eben am Freitag nach 18 Uhr und Sonntag 24 Uhr. Wie ist das möglich?
Du hast mehrere Intervalle, die sich nach Wochentag und Uhrzeit definieren. Wochentag und Uhrzeit kannst du aus einem Timestamp bekommen. Dann brauchst du nur noch eine Reihe von verknüpften Abfragen:
(Montag UND (Zeit zwischen 18 und 24))
ODER
(Dienstag UND (Zeit zwischen 18 und 24))
ODER
(Donnerwoch UND (Zeit zwischen 18 und 24))
...
Das Intervall Freitag 18 Uhr bis Sonntag 24 Uhr kannst du splitten und dann Freitag 18 bis 24 Uhr abfragen, oder Samstag oder Sonntag ohne Berücksichtigung der Zeit.
Schön ist das natürlich nicht; sollten sich die Intervalle mal ändern, musst du jedesmal den Code der Abfrage ändern. Eleganter wäre eine Art Tabelle, in der die Intervalle definiert werden. Aber das heben wir uns für die zweite Folge auf. ;-)
Ich habe es mit strtotime("Tuesday 18:00:00")); probiert, allerdings kann ich damit ja immer nur einen Wochentag abfragen. Und wenn ich zum Beispiel Dienstag komplett weglasse, würde es am Wochenende nicht passen.
Den Gedankengang verstehe ich nicht.
So long,
Martin