这是我第一次处理时区 . 这是场景:
-
服务器数据库采用UTC时区
-
客户端1在IST中,客户端2在EST中
-
EST客户端存储的数据应在IST中正确显示给客户端,反之亦然
-
Server运行cron job并从数据库中读取数据 . 它需要正确地向EST和IST客户端显示与其时区相关的通知
技术
-
服务器操作系统 - Ubuntu(EC2)
-
数据库 - MySQL(UTC)
-
后端服务器 - Node.js
-
前端 - Angular.jS
我的想法
-
在数据库中,维护两列:created_at,timezone_offset
-
created_at将以UTC格式存储所有内容
-
offset将存储UTC和各个时区的差异示例:IST = 330(以分钟为单位)的偏移=> 5小时30分钟
-
每当向具有日期的服务器发送请求时:
-
选择本地日期时间(created_at)
-
查找UTC的偏移量
-
将created_at转换为UTC(使用时刻)
-
将已转换的created_at,offset发送到服务器
-
store created_at,数据库中的偏移量
-
在服务器上运行cron
-
使用created_at偏移量从数据库中读取记录
-
返回API响应
-
返回created_at(以UTC为单位),json响应中每条记录的偏移量
-
客户端使用created_at偏移量显示日期时间(使用时刻)
这是处理时区的正确方法吗?
我应该在MySQL中使用created_at的datetime数据类型吗?