我有一张“通知”表,可能会在任何24小时内发送或不发送。每个通知都有自己的时区偏离GMT
,所以我有一个偏移列,它将是+/-秒。
我需要创建一个PHP脚本,定期(via cron)
检查数据库是否有发送的通知,如果当天的时间已经过了00:00,则将其重置为unsent。我真的在努力做到最好的方法 - 我能做一个简单的计算吗?
我正在考虑使用mktime()[我的服务器在GMT中]来获取服务器午夜的UNIX时间,并在几秒钟内使用偏移量计算出来,但我想到的每一种方式似乎都是错误的。
类似的东西:
if(!mktime()-$notifcationTimezone > $serverMidnight){}
我不是说这不起作用,但我认为当服务器进入另一天时它不会起作用。这让我感到困惑,我对它毫不相信。
答案 0 :(得分:0)
这不仅仅是与strtotime的简单比较,你甚至不需要加上偏移量。您可以使用日期功能设置要传递给strtotime的特定时间,以便与其进行比较。
为了给我们一个更好的主意,请向我们展示一个来自您的数据库的真实示例以及cron现在的样子。
我不完全确定你想要在这里拉什么,但是,你可能想要考虑的是你真的想要重置任何东西,是否需要它?您可以填写通知发送的日期。如果它与今天的日期不匹配,您想再次重新发送它?