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