是否有可能改变php的当前日期和时间(类似于set_time(strtotime('1999-09-09')),所以当我调用time()时它会返回1999-09-09的时间戳?我需要设置它全球适用于整个应用.
编辑
我已经有一个旧的应用程序,我需要设置当前日期.我不能接受任何自定义功能.想象一下,我应该检查所有代码并替换每次time()调用.即使我会这样做,它也无济于事,因为我还需要替换getdate()等函数.
ste*_*esu 10
这些time()函数实际上会询问系统时钟,因此您必须更新服务器系统时钟的时间.要记住以下几点:
如果您想为整个应用程序全局更改时间,我建议您使用静态变量$timeOffset并创建自己的time()函数,如下所示:
function myTime(){
global $timeOffset;
return time()+$timeOffset;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您已考虑所有这些并仍想更改系统时间,则需要使用命令向shell发送命令 shell_exec()
在Windows中,代码如下所示:
shell_exec("date 09-09-99"); // Use "date mm-dd-yy" or "time hh:mm:ss", respectively
Run Code Online (Sandbox Code Playgroud)
在UNIX中,根据date手册页,代码如下所示:
shell_exec("date 0909hhmm1999"); // It says "date MMDDhhmiYYYY". I'm not sure how to set seconds, although I assume "mi" = "minutes"
Run Code Online (Sandbox Code Playgroud)
PHP 本身没有日期和时间。time() 返回服务器时间的当前时间戳。根据您的操作系统,您(即运行脚本进程的用户)很可能实际上不允许更改服务器日期和时间。
这提出了一个不同的问题:你为什么要这样做?
更好的是实现你自己的 time() 函数:
class myTime
{
private static $offset = 0;
public static function getTime()
{
return time() + self::$offset;
}
public static function setTime($time)
{
self::$offset = $time - time();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在您使用的任何地方time(),使用myTime::getTime();. 要设置时间,请使用myTime::setTime($time)您$time要使用的时间戳。
| 归档时间: |
|
| 查看次数: |
23097 次 |
| 最近记录: |