在配置文件的开头我有:
date_default_timezone_set('America/Los_Angeles');
echo "Set default timezone: " . date_default_timezone_get() . "\n";
...
我通过CLI执行PHP脚本,输出如下:
设置默认时区:America / Los_Angeles
PHP警告:date():依赖系统的时区是不安全的 设置。您必需使用date.timezone设置或 date_default_timezone_set()函数。如果您使用其中任何一个 方法,你最有可能仍然得到这个警告 拼写错误的时区标识符。我们为时区选择了“UTC” 现在,但请设置date.timezone以选择您的时区。在
为什么我收到消息“即使在设置时区后依赖系统的时区设置也不安全?”
------更新---------
原来这是一个线程问题,所以需要设置为php.ini来解决它。
<?php
require __DIR__ . '/config.php';
date_default_timezone_set('America/Los_Angeles');
echo "Timezone: " . date_default_timezone_get() . "\n";
function threadTest() {
echo "Thread Timezone: " . date_default_timezone_get() . "\n";
}
$thread = new Thread_Async();
$thread->call('threadTest');
结果:
时区:America / Los_Angeles
PHP警告:date_default_timezone_get():依赖是不安全的 系统的时区设置。您必需才能使用 date.timezone设置或date_default_timezone_set()函数。在 如果你使用了这些方法中的任何一种,你仍然会得到这个 警告,你很可能拼写错误的时区标识符。我们 现在选择时区'UTC',但请将date.timezone设置为 选择你的时区。在/pvolf/wwwdev/app/test.php第10行
线程时区:UTC
答案 0 :(得分:0)
检查用于命令行的ini。我打赌它没有时区设置。尝试使用-d date.timezone=UTC
运行命令行,例如:
php -d date.timezone=UTC foo.php