“设置后依赖系统的时区设置是不安全的”

时间:2015-05-04 01:57:09

标签: php timezone

在配置文件的开头我有:

    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

1 个答案:

答案 0 :(得分:0)

检查用于命令行的ini。我打赌它没有时区设置。尝试使用-d date.timezone=UTC运行命令行,例如:

php -d date.timezone=UTC foo.php