【问题标题】:Run script at 12 am at every time zone [duplicate]在每个时区的凌晨 12 点运行脚本[重复]
【发布时间】:2017-12-12 01:47:53
【问题描述】:

我正在尝试在每个时区的凌晨 12 点(午夜)运行 .php 脚本。

我的目标:我的数据库中有一个名为 time_zone 的字段。我需要在上午 12 点在那个“时区”向那个用户发送一封电子邮件。

我研究了 cron 作业,但我认为它不适用于时区。有没有其他方法可以做到这一点?

编辑:我确实考虑过每 30 分钟运行一次脚本,因为有些时区相隔 30 分钟,但这似乎不是一个好的解决方案,因为我不知道如何计算 12:00 在哪个时区上午。

【问题讨论】:

  • 如果你想在每个时区的午夜运行它,那么你应该每小时运行一次,因为它在某个时区总是午夜。
  • 您需要提供更多信息。脚本是在服务器上集中运行,还是在需要识别自己的时区的多台机器上本地运行?
  • @ebraley 以及一些半小时和一刻钟。 en.m.wikipedia.org/wiki/List_of_UTC_time_offsets
  • 脚本将在一台服务器上运行
  • 为什么需要知道上午 12 点是哪个时区?脚本有什么作用?也许你应该多分享一些关于你打算做什么的信息。

标签: php cron scheduled-tasks cron-task


【解决方案1】:

您可以创建一个包含所有时区的数组并从中进行比较。如果阵列中存在,您可以发送电子邮件。它并不完美,但它应该可以完成这项工作。

【讨论】:

  • 怎么回事?例如?
  • $array = array('TZ_1', 'TZ_2', 'TZ_3', ...) foreach($timezone in $array){ $cur_time = time() // 获取当前时间所需格式 如果数组包含 $timezone 发送电子邮件 }
  • 但是你会如何计算时间呢?例如,您如何查看上午 12:00 是哪个时区,以便我可以运行脚本?
  • php 是一种服务器端语言......所以当你请求一个页面时,它会显示出来。一种方法是,你可以创建一个页面,并在其上进行 AJAX 调用,只要页面存在,ajax 调用就会通过上述逻辑不断检查时间并从那里发送电子邮件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2021-10-02
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多