2017-07-25 288 views
0

我在Laravel使用Carbon在日期上做了一些工作。我很快就意識到,我的本地PHP的副本爲UTC設定,所以在我的代碼我設置在碳的時區:Laravel - Carbon不在夏令時

$dt = Carbon::now('America/New_York'); 

奇怪的是,它仍然隨地吐痰是紐約時間後一小時日期:

echo $dt; 

產量:

2017年7月25日16時29分37秒

但現在是下午5點29分

看起來好像是一個小時,因爲它沒有考慮夏令時。我在StackOverflow或Google上找不到與Carbon中的夏令時有關的任何內容,我所讀的所有內容都只是說如果您正確設置時區,它將自行考慮DST。

+0

有你在你的'php.ini'文件檢查'datetime'和檢查這個【答案】(https://stackoverflow.com/questions/27732548/carbon-now-time-wrong) –

+0

我檢查我的PHP .ini,它被設置爲相同的東西:date.timezone =「America/New_York」 不幸的是,我沒有發現你鏈接到的答案中的任何內容都可以解釋這一點。 – carbide20

+0

嘗試使用'echo date(「Y-m-d h:i:sa」)等原生php函數來回顯時間;'並根據您的時區查看是否獲得正確的時間 –

回答

0

刪除您在哪裏設置碳時區。

裏面config/app.php有一行:

'timezone' => '' 

將其設置爲:

'timezone' => 'America/New_York' 

它將爲您的應用程序的默認時區。設置完成後,您將獲得DST調整後的紐約時間。