我有一个基于多时间区的项目。该项目有很多DateTime字段。所有用户都可以从个人资料首选项中设置自己的时区。
将这些日期从UTC转换为用户的时区很麻烦。每次操纵日期/时间时,我都在这样做。
如何处理?我不想在数百万个位置上调用DateTime转换功能?这样做的正确方法是什么?
我之前遇到了相同的问题。我这样解决了:
1)使用geoip_time_zone_by_country_and_region在用户注册时获取时区 使用是全球通用代码的国家代码的功能。
2)我将时区存储在用户表中。
3)我创建了一个全局中间件,该读取如果用户已登录并使用date_default_timezone_set函数设置时区。
。这就是它的工作方式。
pros
您只需要做一次即将工作。
cons
您需要正确设置的国家/地区代码列表,否则将失败