微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以通过某种方式“欺骗”单个PHP脚本,使它认为系统时钟/日期不是实际的值?

如何解决是否可以通过某种方式“欺骗”单个PHP脚本,使它认为系统时钟/日期不是实际的值?

我需要调试各种与时间有关的问题。每六个月只有一个小时发生一次错误。等待半年等待一个小时的时间来修复此错误是很乏味的。由于这个原因以及类似的测试情况,我想为单个PHP脚本“伪造系统时钟/日期”。

它一定不能更改实际的系统时钟/日期!实际上更改此设置对于我保存的所有日志来说都是灾难性的,无论多么短暂。

我希望能够做类似的事情:

Microsoft Graph

这可能吗?如果是这样,怎么办?请告诉我这是...

解决方法

不可能是PHP实现时间功能的方式。

PHP从托管服务器读取时间(在您的情况下,可以是您的PC),因此您不能像这样更改时间。

但是,有一种聪明的方法可以满足您的需求。由于时间只是其核心的时间戳,所以它是一个数字,因此请找出当前时间与您要在函数中设置的时间之间的时间戳差异(正或负)。您会得到补偿。

然后执行您想随时间进行的所有计算,并向其添加偏移量。这样,您将获得时间的所有功能,而无需再次实现整个时间功能。


function mytime() {
    return time()+set_mytime();
}

function set_mytime($new_time=null) {
    static $offset;
    if(!$new_time) {return $offset;}
    //$new_time should be a unix timestamp as generated by time(),mktime() or strtotime(),etc
    $real_time=time();
    $offset=$real_time-$new_time;
}

此外,如果您对更改时间非常感兴趣,则可以使用exec函数并调用系统命令来执行此操作。但是请注意,随机更改整个系统的时间会产生意想不到的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。