【发布时间】:2018-01-01 00:07:06
【问题描述】:
我在 Laravel 中使用 Carbon 来处理日期。我很快意识到我的本地 PHP 副本是为 UTC 设置的,所以在我的代码中,我在 Carbon 中设置了时区:
$dt = Carbon::now('America/New_York');
奇怪的是,它仍然吐出比纽约时间晚一小时的日期:
echo $dt;
产量:
2017-07-25 16:29:37
但现在是下午 5:29
这似乎是一个小时的休息,因为它没有考虑夏令时。我在 StackOverflow 或 Google 上找不到任何与 Carbon 中的夏令时相关的内容,我读到的所有内容都说,如果您正确设置时区,它将自行考虑 DST。
【问题讨论】:
-
您检查过
php.ini文件中的datetime并检查此answer -
我检查了我的 php.ini,它设置为相同的内容: date.timezone = "America/New_York" 不幸的是,我在您链接的答案中没有找到任何其他内容可以解释这一点.
-
尝试使用像
echo date("Y-m-d h:i:sa");这样的原生php函数来回显时间,看看你是否根据你的时区得到正确的时间 -
确认,这确实输出了正确的时间。我还回应了我的 phpinfo() 只是为了确保正在执行的 PHP 与我检查时区设置的 php.ini 相同。时区与我在 php.ini 中设置的匹配
-
检查
laravel/config/app.phpline ~ 67 ->'timezone' => __中的设置
标签: php laravel php-carbon