我的项目主要是在CET地区。我在config / app.php中设置了CET, 但基准中的所有数据透视时间戳都以UTC时间存储?
我怎样才能设置"全球"时区的时区?
我做了这个测试:<?php
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
echo "<br />".date('m/d/Y h:i:s a', time());
$mytime = Carbon\Carbon::now();
echo "<br />".$mytime->toDateTimeString();
?>
以及此处的结果:
The current server timezone is: CET
06/09/2016 12:06:04 pm
2016-06-09 11:06:04
TNX ÿ
答案 0 :(得分:14)
Carbon使用默认的 DateTime PHP对象,因此请使用 date_default_timezone_set()函数,例如:
date_default_timezone_set('Europe/London');
答案 1 :(得分:6)
public function boot()
{
Schema::defaultStringLength(191);
date_default_timezone_set('Asia/Aden');
}
答案 2 :(得分:3)
你可以用mutators实现它
public function getCreatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))
->timezone(Config::get('app.timezone'))
->toDateTimeString(); //remove this one if u want to return Carbon object
}
答案 3 :(得分:2)
答案 4 :(得分:0)
更新文件config/app.php
例如:'timezone' => 'Asia/Jerusalem'
而不是'timezone' => 'UTC'
答案 5 :(得分:0)
如果您使用的是Laravel Carbon时间戳, 那么您必须在App / Providers / AppServiceProvider.php文件中更改时区
// App / Providers / AppServiceProvider.php
public function boot()
{
date_default_timezone_set('Asia/Calcutta');
}