Как вы определяете, какой часовой пояс сейчас в 12:00? - PullRequest
2 голосов
/ 10 июня 2009

Я работаю над заданием cron, которое отправляет отчеты сотням пользователей по всему миру. Хрон должен отправить электронное письмо всем моим пользователям ровно в 12 часов утра в соответствии с их часовым поясом. Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 10 июня 2009

Вам нужен список того, в каком часовом поясе находятся все ваши пользователи +, используют ли они переход на летнее время или нет.

Полный список часовых поясов см. В этой статье в википедии

Затем каждые 15 минут необходимо, чтобы cron запускал скрипт для всех пользователей в текущем смещении часового пояса.

например. в UTC + 5:45 отправьте ваши письма всем пользователям в часовом поясе "Катманду"

2 голосов
/ 10 июня 2009
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
...
------------------------------

Вы должны увидеть, как паттерн начинает развиваться здесь. Шаблон должен выглядеть примерно так: разница часовых поясов = (12 - ваш текущий час)

0 голосов
/ 10 июня 2009

Определите, в каком часовом поясе вы находитесь:

time("O");

Выясните, в какое время вы находитесь:

time("H:i")

Сделайте некоторую магию, чтобы понять, нужно ли вам прибавлять или вычитать время, чтобы добраться до полуночи, затем добавьте или вычтите разницу между вашим временем и полуночей, чтобы получить разницу в часовом поясе, и добавьте ее в свой часовой пояс. Вуаля.

Редактировать: См. Ответ @ TheTXI о "магии"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...