我在php.ini文件此項:PHP date.timezone不是命令行腳本正常工作,只有
date.timezone = 'Europe/London';
但我每次在命令行腳本中使用的DateTime()時我仍然得到以下錯誤:
Exception: DateTime::__construct(): 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 'Europe/London' for 'BST/1.0/DST' instead
因此,我必須做的任何腳本下面來得到這個工作:
date_default_timezone_set('Europe/London');
w ^否則可能會導致此錯誤?
UPDATE
我曾經在這兩個命令行和Web瀏覽器中執行以下操作:
<?php
var_dump(ini_get('date.timezone'));
exit;
在命令行中,我得到:
string(0) ""
在Web瀏覽器中,我得到:
string(13) "Europe/London"
你改變php.ini文件後,重新啓動服務器的問題? –
是的,它已被重新啓動,但該值已被設置了一段時間,並且服務器之間已經多次重新啓動。它只是現在,當我寫一個命令行腳本,發生異常 – user1572427
你可以嘗試echo ini_get('date.timezone');看看實際設置了什麼? –