我有一台无法更改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');" />