因此,我由另一个员工交给了一个旧项目。这是可怕的代码,差点让我辞职。两次。因为我没有那么多时间(我花了2周的时间完成这项任务),所以我无法重写整个过程。我按照要求进行了修改,目前正在测试中。问题是,代码应在其他年份更改其行为。这个问题的问题是,没有设置当前年份的中心位置,它遍历了所有代码date("Y")
,这迫使我更改大约200个文件。
因此,最简单的解决方案是在一开始就告诉PHP:“嘿,这是20xx年”。我尝试过date_default_timezone_set()
,但这完全没有帮助。所以我正在寻找的是:
Set_Date("Y", 2016);
)setdate -Y 2016
)有什么办法或至少可以通过一种变通办法使脚本认为这是另一年?
您可以使用runkit_function_redefine()
重新定义函数
,但您需要设置runkit PECL 扩展
注意:我没有测试过!
<?php
print date("Y");
$date = 'print "Hello, it is a new definition of date function <" . $Y . ">"; return 2014; ';
runkit_function_redefine('date', '$Y', $date);
date("Y");
Run Code Online (Sandbox Code Playgroud)