0

我有一张“通知”表,可能会或可能不会在任何 24 小时内发送。每个通知都有它自己的时区偏移量GMT,所以我有一个偏移量列,它将是 +/- 以秒为单位。

我需要创建一个 PHP 脚本,该脚本将定期(via cron)检查数据库是否已发送通知,然后如果当天的时间已过 00:00,则将它们重置为未发送。我真的在努力寻找最好的方法——我能做一个简单的计算吗?

我正在考虑使用 mktime() [my server is in GMT] 获取服务器午夜的 UNIX 时间,并以秒为单位计算偏移量,但我想到的每一种方式似乎都是错误的。

就像是:

if(!mktime()-$notifcationTimezone > $serverMidnight){}

我并不是说这不起作用,但我认为当服务器进入另一天时它不会起作用。它只是让我感到困惑,我对此没有信心。

4

1 回答 1

0

这不仅仅是与strtotime的简单比较,您甚至不需要将偏移量相加。您可以使用 date 函数设置要传递给要用于比较的 strtotime 的特定时间。

为了给我们一个更好的主意,向我们展示一个来自您的数据库的真实示例以及 cron 现在的样子。

我不完全确定您要在这里尝试什么,但是,您可能想考虑的是您是否真的要重置任何东西,是否需要?您可以填写通知的发送日期。如果它与今天的日期不匹配,您要重新发送吗?

于 2010-12-05T18:53:58.933 回答