Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP计时?_Php_Date_Time - Fatal编程技术网

如何使用PHP计时?

如何使用PHP计时?,php,date,time,Php,Date,Time,我想做一个脚本,我每个月都会做一部分网站重置 或者一个更好的例子,比如订阅,当你想买东西并且需要每月续费时。我怎么知道已经一个月了呢?在PHP中,你不能做常规的cron工作,如果你不知道自己在做什么,我会严肃地劝阻你不要做真正的cron工作 您只能在上次执行该事件时进行注册,然后检查是否已过一个月。这是一个非常简单的cron示例: <?php $lastexecution = /*logic to know when you last executed.*/; /* It's eith

我想做一个脚本,我每个月都会做一部分网站重置


或者一个更好的例子,比如订阅,当你想买东西并且需要每月续费时。我怎么知道已经一个月了呢?

在PHP中,你不能做常规的cron工作,如果你不知道自己在做什么,我会严肃地劝阻你不要做真正的cron工作

您只能在上次执行该事件时进行注册,然后检查是否已过一个月。这是一个非常简单的cron示例:

<?php

$lastexecution = /*logic to know when you last executed.*/;

/* It's either a database or a file or something similar.
 * I usually use a database table that contains the records when I
 * last executed a cron
 */

if (time() > $lastexecution + (30 * 24 * 3600)) {
  /*CRON LOGIC*/
}

@mstruebing我不知道这在PHP中是否可行,我想做一些事情,比如保存unix日期,并在秒内添加30天,用户登录时检查日期是否大于或等于保存的日期。但是我希望它没有用户登录。@Roy一切都有可能如果他们没有登录,你就不会知道他们是同一个用户。@chris85这是我的第一个例子,不是第二个。对于第二个例子,我想我会做我想做的事。
如果你不知道自己在做什么,我会严肃地劝阻你不要用真正的cron作业来做这件事
为什么?设置一个cron工作并不是特别难让你动脑是的。在您进入一个允许没有经验的人创建cron作业的地方工作之前,crontab有几十条记录,将应用程序从一台服务器移动到另一台服务器是一件痛苦的事情。Cron作业位于应用程序之外,因此大大降低了它的可移植性。这只是我的观点,但像这样的伪Cron可能不那么可靠,但它们位于repo内部。当您传输应用程序时,它们会随应用程序一起传输,并且与用户无关(这意味着您不会在任何地方拥有root或cron拥有的文件,也不会在多个不同的用户中拥有这些文件)。您编写的代码只有在用户正确进入站点时才能工作?我如何设置一个cron作业来实现这一点呢?好吧,我们不能因为技术解决方案可能(也将)被误用而忽略它们。在每次安装时必须设置的repo(环境变量、db凭据等)之外通常有多个因素。使用
crontab-uwww-user-e
添加一两行应该在正常应用程序安装的范围内。