在 php 中更改今天的日期和时间

2022-08-30 16:40:25

是否可以更改php的当前日期和时间(类似于set_time(strtotime('1999-09-09')),因此当我调用time()时,它将返回1999-09-09的时间戳?我需要为整个应用程序全局设置它。

编辑

我已经有一个旧应用程序,我需要设置当前日期。我不能接受任何自定义函数。想象一下,我应该审查所有的代码,并在每次调用时替换。即使我会这样做,那也无济于事,因为有像getdate()这样的函数,我也需要替换。


答案 1

您还可以检查Timecop PHP模块,在我的情况下工作得很好。

安装完成后,您只需一行代码即可及时来回旅行。


答案 2

这些函数实际上会向系统时钟询问时间,因此您必须更新服务器系统时钟的时间。要记住的几件事:time()

  • 这在Unix服务器上完成的方式与在Windows服务器上完成的方式不同。如果你想要代码与两者兼容,你必须小心
  • 有时(特别是在共享主机情况下),您不允许更改系统时间
  • 对系统时间的更改将在脚本执行后保留,除非您稍后将其更改回去。因此,您可能会真正搞砸系统时钟。

如果要全局更改整个应用的时间,我建议使用静态变量并创建自己的函数,如下所示:$timeOffsettime()

function myTime(){
    global $timeOffset;
    return time()+$timeOffset;
}

但是,如果您已经考虑了所有这些因素,并且仍然想更改系统时间,则需要使用以下命令向shell发送命令。shell_exec()

在 Windows 中,代码将如下所示:

shell_exec("date 09-09-99"); // Use "date mm-dd-yy" or "time hh:mm:ss", respectively

在 UNIX 中,根据手册页,代码将如下所示:date

shell_exec("date 0909hhmm1999"); // It says "date MMDDhhmiYYYY". I'm not sure how to set seconds, although I assume "mi" = "minutes"

推荐