Laravet Carbon日期setTimezone(8)给出+0700

时间:2018-03-15 07:43:34

标签: laravel timezone php-carbon

我想将时区设为GMT + 8

$data = Carbon::now();
$data->setTimezone(8);

但结果是

Carbon @1521099609 {#2145
  date: 2018-03-15 14:40:09.759487 Asia/Krasnoyarsk (+07:00)
}

我不知道为什么会这样,所以我必须使用时区名来获得我想要的确切日期?

2 个答案:

答案 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);