Ich arbeite an einem Cron-Job, der Berichte an Hunderte von Benutzern auf der ganzen Welt sendet. Der Cron sollte genau um 12:00 Uhr morgens eine E-Mail an alle meine Benutzer senden, entsprechend ihrer Zeitzone. Vielen Dank im VorausWie bestimmen Sie, welche Zeitzone gerade um 12 Uhr ist?
Antwort
Your Time | Timezone You Need
-----------------------------
12:00am 0
1:00am -1
2:00am -2
3:00am -3
4:00am -4
5:00am -5
...
12:00pm +/- 12
1:00pm +11
2:00pm +10
3:00pm +9
...
------------------------------
Sie sollten die Muster sehen beginnen können, hier zu entwickeln. Das Muster sollte etwa so aussehen wie Zeitzonenunterschied = (12 - Ihre aktuelle Stunde)
Herauszufinden, was Zeitzone Sie sind in:
time("O");
Abbildung heraus, was die Zeit ist, wo Sie sind:
time("H:i")
etwas Magie Sie herauszufinden, ob Sie mit dem Hinzufügen werden soll oder subtrahieren Sie die Zeit bis Mitternacht, dann addieren Sie oder subtrahieren Sie die Differenz zwischen Ihrer Zeit und Mitternacht, um die Zeitzonendifferenz zu erhalten, und fügen Sie sie Ihrer eigenen Zeitzone hinzu. Voila.
Edit: See @ TheTXI Antwort für die ‚Magie‘ beteiligt
Sie müssen eine Liste der in welche Zeitzone alle Benutzer in + sind, ob sie die Sommerzeit verwenden oder nicht.
Eine vollständige Liste von Zeitzonen sehen diese wikipedia article
alle 15 Minuten, die Sie dann brauchen Offset ein Skript für alle Benutzer in der aktuellen Zeitzone haben cron.
z.B. bei UTC + 5.45 Ihre E-Mails an alle Benutzer in der „Kathmandu“ Zeitzone senden
+1 für die Suche nach Benutzern in Kathmandu! –
nicht nur Kathmandu, Teheran ist +3: 30, Adelaide und Darwin in Australien sind +9: 30, Delhi und Mumbai sind +5: 30. Grundsätzlich sind Zeitzonen normalerweise in Schritten von 15 Minuten. Im Grunde ist das Zeitzonen-Handling auch nervig! – Glen
Yup, ich glaube mich daran zu erinnern, dass der Leiter eines Landes zufällig im letzten Jahr seine Zeitzone durch Diktat geändert hat - nicht sicher, wie ernst diese Änderung von Leuten genommen wurde, die sich um Zeitzonen kümmern! Mit anderen Worten, ich weiß nicht, wo es heißt, dass Zeitzonen auf 15-Minuten-Grenzen liegen müssen. –
Vergessen Sie nicht alle Orte, die 15, 30 und 45 Minuten Offsets sowie – Glen
verwenden Danke, Sie haben geholfen, in einer anderen Perspektive zu denken. Ich denke statt der Mathearbeit, die sehr verwirrend ist. Ich werde nur für jede Stunde meiner Zeitzone Anweisungen für jede Zeitzone programmieren. – drikoda
Guter Punkt Glen. Und drikoda, ich habe mich nicht wirklich dafür ausgesprochen, hineingehen und alles hart programmieren zu müssen, sondern eine große und gründlich genug Liste oder Datenbanktabelle (einschließlich der Aufteilung in 15-Minuten-Schritten statt der einen Stunde wie ich getan habe)), aber wenn das der beste Weg für dich ist, es zu tun, ohne dich selbst töten zu wollen, dann sei es so. – TheTXI