我正在处理一个cron任务,向全球数百名用户发送报告。这个cron应该在每个用户的时区凌晨12点准确发送电子邮件给他们。谢谢。
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-您当前的小时)
确定你所在的时区:
time("O");
找出你所在的时间:
time("H:i")
进行一些魔法计算,以确定您应该添加还是减去时间才能到达午夜,然后添加或减去您的时间与午夜之间的差异以获取时区差异,并将其添加到您自己的时区。大功告成。
编辑:请参见@TheTXI的答案,了解所涉及的“魔法”