Has*_*nda 3 php laravel laravel-blade
因此,我已经使用 UTC 在数据库中保存了任何日期,并且可以像 $data->created_at 或 $data->blocked_at 一样获取它。因此,在我的配置中,我将时区设置为 UTC,然后我想在查看时将其从 UTC 转换为 UTC+7 或其他时区。
有没有一种简单的方法可以在查看所有日期时转换我想要的时区?
我还在使用 Laravel 5.8
编辑:
我正在使用答案,但在我的基本模型上实现它,如下所示:
public function getDateConverter($key){
if(strtotime($this->{$key})){
$date = Carbon::createFromFormat('Y-m-d H:i:s', $this->{$key});
$date->setTimezone(env("APP_TIMEZONE_VIEW"));
return $date->toDateTimeString();
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我将像这样调用列名称 $data->getDateConverter("created_at");
您可以使用核心中包含的 Carbon
$timestamp = '2014-02-06 16:34:00';
$date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm');
$date->setTimezone('UTC');
Run Code Online (Sandbox Code Playgroud)
Europe/Stockholm 是您的默认时区,UTC 是您要设置的时区
如果你想在显示时将其从模型转换,请尝试访问器
public function getCreatedAtAttribute($value)
{
$date = Carbon::createFromFormat('Y-m-d H:i:s', $value, 'Europe/Stockholm');
$date->setTimezone('UTC');
return $date->toDateTimeString();
}
Run Code Online (Sandbox Code Playgroud)