Ein Benutzer kann einen Tag als Geburtstagswarnung einstellen (das Geburtsjahr ist uns egal). Er wählt auch aus, ob er 0, 1, 2 oder 7 Tage (Delta) vor dem Tag D benachrichtigt werden möchte. Die Benutzer haben eine Zeitzoneneinstellung.
Ich möchte, dass der Server die Benachrichtigungen um 8 Uhr am Tag D - deleta +- Benutzerzeitzone - sendet.
Beispiel:
12 jun, mit "Benachrichtigung 3 Tage vorher" ergibt 9 of Jun.
Meine Idee war, ein zusätzliches Feld trigger_datetime auf dem Objekt "wiederkehrendes Ereignis" zu speichern. Etwa so ein cron Ein Job, der stündlich auf meinem Server läuft, sucht nach allen Ereignissen, die mit der aktuellen irs-Zeit Stunde, Tag und Monat übereinstimmen, und sendet sie an die Warnmeldung.
Das Problem ist, dass sich das Auslösedatum von einem Jahr zum nächsten ändern kann! Wenn der Alarm auf den 1. März eingestellt ist, könnte das mit einem Tag Verzögerung entweder der 28. oder 29. Februar sein.
Vielleicht sollte ich den Trick mit dem Auslösedatum nicht anwenden und ein anderes Schema verwenden.
Alle Pläne sind willkommen.