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


Can I reset the PHP timezone settings in Phing?

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

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

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

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

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

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

我在Git上的Phing代码库中搜索了date_default_timezone_set(),但它似乎没有时区意识。

是否存在一个Phing任务,它只是用指定的参数调用ini_set()?或者,除了请求更改Phing核心之外,还有更好的方法来实现我想要做的事情吗?

此处的任何内容https://www.phing.info/docs/guide/trunk/PhpEvalTask.html?像

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