我想将时区设置为 GMT+8
$data = Carbon::now();
$data->setTimezone(8);
但给出的结果是
Carbon @1521099609 {#2145
date: 2018-03-15 14:40:09.759487 Asia/Krasnoyarsk (+07:00)
}
我不知道为什么会这样,所以我必须使用时区名称来获取我想要的确切日期?
像这样尝试
$data = Carbon::now();
$data->setTimezone('Asia/Krasnoyarsk');
还要确保设置时区,否则它将具有php.ini
文件中设置的默认值
Carbon::now(new DateTimeZone('Europe/London'));
希望这有帮助
首先获取时区名称,然后set
:
$data = Carbon::now();
$timezoneName = timezone_name_from_abbr("", 8*3600, false);
if($timezoneName)
$data->setTimezone($timezoneName);