如何在laravel中设置本地时区


How to set local timezone in laravel

是否有办法在laravel中设置本地时区?

在<<p> strong>配置/app.php
'timezone' => 'UTC',
  • 应该添加什么以便上面的timezone值使用本地时区?

经过一番研究,我偶然发现了下面的PHP处理方法:

$userTimezone = Auth::user()->timezone;
date_default_timezone_set($userTimezone);
// and change the configuration so they match
Config::set('app.timezone', $userTimezone)

但是,除了使用上面的代码转换时区之外,还有什么更好的解决方案吗?

欢呼

不要那样做。不要将全局Laravel时区设置为用户的时区。你将面临无穷无尽的问题。

选择应用程序的时区,将Laravel配置设置为该时区,并且永远不要更改它。

相反,当您需要在用户的时区显示日期时,请执行如下命令

User::find(1)->foobazed_at->timezone(Auth::user()->timezone);

要控制哪些模型列被自动转换为Carbon'Carbon实例,请在模型文件中添加以下方法:

public function getDates()
{
    return array('foobazed_at', static::CREATED_AT, static::UPDATED_AT, static::DELETED_AT);
}