如何在多个本地时区中触发php中的时间事件
我有一个像这样的数组如何在多个本地时区中触发php中的时间事件,php,timezone,Php,Timezone,我有一个像这样的数组 $alerts = array( array('alert' => '04:30:30', 'zone' => 'Europe/Berlin'), array('alert' => '04:30:30', 'zone' => 'Asia/Bangkok') ); 挑战在于如何根据当地时间触发该事件? 有时可能会发生变化,加上一些大陆有夏季/冬季,而另一些大陆则没有 因为您已经有了很好的时区标识符,所以您应该将此数组中的每个条目都转换为Dat
$alerts = array(
array('alert' => '04:30:30', 'zone' => 'Europe/Berlin'),
array('alert' => '04:30:30', 'zone' => 'Asia/Bangkok')
);
挑战在于如何根据当地时间触发该事件?
有时可能会发生变化,加上一些大陆有夏季/冬季,而另一些大陆则没有 因为您已经有了很好的时区标识符,所以您应该将此数组中的每个条目都转换为
DateTime
对象。这样就不需要手动计算下一次发生的时间
在拥有DateTime对象的大数组之后,对数组进行排序,使首先发生的项位于顶部。在那之后,你要计算在未来的几秒钟内触发器应该发生的时间,并在这段时间内
sleep()
。你说的“触发器”是什么意思?您是否将PHP用作长时间运行的脚本?你在写cron作业吗?是的,它每分钟都由一个应用程序执行。我在想一个foreach数组,使用date\u defaut\u timezone\u set和mktime,并将其与本地时间的+/-60秒进行比较,但这似乎有点过头了。