2017-07-25 289 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调整后的纽约时间。