如何在 laravel 中设置本地时区
How to set local timezone in laravel
有没有办法在 laravel 中设置本地时区?
在config/app.php
'timezone' => 'UTC',
- 要使上面的时区值使用本地时区,应该添加什么?
经过一些研究,偶然发现了以下 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);
}
有没有办法在 laravel 中设置本地时区?
在config/app.php
'timezone' => 'UTC',
- 要使上面的时区值使用本地时区,应该添加什么?
经过一些研究,偶然发现了以下 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);
}