我可以在Phing中重置PHP时区设置吗?

时间:2015-11-10 14:06:42

标签: php datetime timezone phing

我有一个无法更改TZ设置的服务器,以及一个包含build.xml任务的Phing Tstamp,它会触发PHP时区警告:

  

[PHP错误] strftime():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区。 [phar:///.../classes/phing/tasks/system/TstampTask.php第159行]

我想抑制此错误,但由于我不允许更改php.ini我想以另一种方式执行此操作。琐碎的方法是在运行Phing时为php提供新的设置:

php -d date.timezone=Europe/London phing.phar dbsetup

但是,我想在不指定ini设置的情况下这样做。我最初认为我可以将PHP脚本作为另一个<target>运行,但这可能只是私下设置该脚本的设置,并且不会影响Phing核心的设置。

另一种方法是扩展Tstamp任务并在Phing配置中更改此类,但目前我从默认的Phar构建运行,所以理想情况下也是如此!

我在Git上搜索了date_default_timezone_set()的Phing代码库,但它似乎不是时区感知的。

是否可能只有使用指定参数调用ini_set()的Phing任务?或者是否有更好的方法来实现我想做的事情,而不是要求改变Phing核心?

1 个答案:

答案 0 :(得分:2)

这里有什么https://www.phing.info/docs/guide/trunk/PhpEvalTask.html?像

<php expression="date_default_timezone_set('Europe/London');" />