让 PHP 在特定日期运行一次


Getting PHP to run once on a specific date

我已经调查过这个,我发现了 Cron 的工作 - 但问题是它只需要运行一次。

背景:我的用户可以创建过期的内容 - 他们选择过期时间。

我的解决方案之一:也许我不必在那天过期它 - 每当有人请求那个东西时,我就可以检查它是否已经过期,如果它已经过期,那么我可以相应地更改那个东西。

为什么它不起作用:我还想在那个东西到期时发送一封电子邮件。

感谢您的任何帮助!

您可以将时间戳与用户项一起保存,例如调用 expire

然后,您可以运行一个 cron 作业来删除所有已过期时间的项目。

if($item.expire < time())
{
   // Item has expired, remove it
}

您可以设置一个 cron 作业,该作业运行一个脚本,该脚本将日期与到期日期进行比较。如果它等于到期日期,则发送邮件,否则不执行任何操作。

如果你在MYSQL上,你可以使用事件。我已经在即将到期的会话中成功使用了它们。

您可以选择使用一种"运行器"来检查在特定时间运行的可用作业并运行它们。然后,您可以创建一个触发运行器的 cronjob。

Cron 作业就是你要找的,你只需要找到一种只运行一次任务的方法。

https://stackoverflow.com/a/5473841/2055152

试试这个在 2011 年 3 月 30 日午夜执行命令:

0 0 30 3 ? 2011 /command

这个答案提供了一个简单的解决方案。如果您希望用户使用 PHP 创建自己的事件,只需将他们想要的日期转换为 cron 格式即可。只是要小心你允许他们启动的内容!