我经常收到以下错误:
DateTime :: createFromFormat():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区。在
虽然我在php.ini中指定了DateTime设置,如下所示:
date.timezone = Asia/Jakarta
有什么想法吗?
答案 0 :(得分:4)
你只是错过了一些引用。
date.timezone = "Asia/Jakarta"
祝你好运!
也可能是您没有加载正确的php.ini文件。有关详情,请参阅此帖子:php5.3.3 date.timezone again php.ini directive not taken into account
答案 1 :(得分:3)
您可以使用
date_default_timezone_set("Asia/Jakarta")
在脚本的开头
答案 2 :(得分:0)
也许这个过程在php cli中运行,所以你需要将这个配置放在你的CLI php.ini中,位于以下路径:/etc/php5/cli/php.ini
默认情况下," date.timezone"被评论,所以改变这个配置: date.timezone =亚洲/雅加达
答案 3 :(得分:0)
对于那些在Symfony 3中遇到同样问题的人,将以下构造函数添加到app / AppKernel.php文件中并重新启动nginx。
public function __construct($environment, $debug)
{
date_default_timezone_set('Asia/Jakarta');
parent::__construct($environment, $debug);
}
答案 4 :(得分:0)
我还在php.ini中指定了DateTime设置。在我的例子中,我编辑的php.ini是
/Applications/MAMP/bin/php/php7.1.1/conf/php.ini
因为我在localhost上看到了info.php(在“加载配置文件”中)生成的路径。
原来它不是使用的那个。试试这个:
php -i | grep php.ini
看看输出是什么。我的是:
/usr/local/etc/php/5.6
Loaded Configuration File => /usr/local/etc/php/5.6/php.ini
PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
然后我转到“/usr/local/etc/php/5.6”并编辑date.timezone行:删除评论(;)并添加“Europe / Berlin”(或在您的情况下为“Asia / Jakarta”) ”。)
再次尝试“php -i | grep php.ini”,现在应该消除php警告消息。
php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php/5.6
Loaded Configuration File => /usr/local/etc/php/5.6/php.ini