Laravel根据偏好更改用户的时区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel根据偏好更改用户的时区相关的知识,希望对你有一定的参考价值。

我有一个基于多时区的项目。该项目有很多DateTime字段。所有用户都可以通过其个人资料首选项设置自己的时区。

将这些日期从UTC转换为用户的时区是很麻烦的。每当我操纵日期/时间时,我都会这样做。

怎么办呢?我不想在数百万个位置调用DateTime转换函数?这样做的正确方法是什么?

答案

我之前遇到过同样的问题。我这样解决了:

1)当用户使用国家代码(使用全球通用代码)使用geoip_time_zone_by_country_and_region 函数注册时获取时区。

2)我将时区存储在users表中。

3)我创建了一个全局中间件,用于读取用户是否已登录并使用php提供的date_default_timezone_set函数设置时区。

这就是它的工作方式。

优点

你只需要做一次,并将永远工作。

缺点

您需要正确设置国家/地区代码列表,否则将失败

以上是关于Laravel根据偏好更改用户的时区的主要内容,如果未能解决你的问题,请参考以下文章

在 Lumen 或 Laravel 5 中更改时区

Laravel - 更改身份验证用户的错误消息

在 Laravel Migrations 中存储时区的最佳方法是啥

我可以更改在 laravel 的身份验证系统中使用的模型用户吗?

Lumen 时区设置

Laravel 在区域设置更改时重定向到路由