时区处理-这是正确的方法吗?

时间:2018-10-12 17:05:06

标签: mysql datetime timezone

这是我第一次处理时区。这是场景:

  1. 服务器+数据库位于UTC时区
  2. 客户端1在IST中 客户端2位于EST

  3. EST客户端存储的数据应在IST中正确显示给客户端,反之亦然

  4. 服务器运行cron作业并从数据库中读取数据。它需要正确显示分别针对其时区的EST和IST客户端的通知

技术

  1. 服务器操作系统-Ubuntu(EC2)
  2. 数据库-MySQL(UTC)
  3. 后端服务器-Node.js
  4. 前端-Angular.jS

我的想法

  1. 在数据库中,维护两列:created_at,timezone_offset

    • created_at将所有内容存储在UTC中
    • 偏移量将存储UTC和相应时区的差异 例如:IST的偏移量= 330(以分钟为单位)=> 5小时30分钟
  2. 每当发送请求到服务器的日期:

    • 选择本地日期时间(created_at)
    • 找到UTC的偏移量
    • 使用时间将created_at转换为UTC
    • 将转换后的created_at发送给服务器,将其偏移量
    • 存储created_at,将其原样存储在数据库中
  3. 要在服务器上运行cron

    • 使用created_at + offset从数据库中读取记录
  4. 返回API响应

    • 返回created_at(采用UTC格式),返回json响应中每条记录的偏移量
    • 客户端使用created_at +偏移量(使用时间)显示日期时间

处理时区是否正确?

我应该在MySQL中为create_at使用datetime数据类型吗?

0 个答案:

没有答案