我正在开发一个现有的调度应用程序,它将mysql中的约会日期/时间存储为“2013-12-25 09:00:00”。到目前为止,没有考虑时区,只是将时间发送到前端并以某种基本方式显示。现在,我想构建一些功能,例如“在appt前X小时发送提醒”。显然要做到这一点,我需要知道时区,以确定我是否在appt前X小时。
我现在还不确定从哪里开始。如何在不知道时区的情况下将现有日期转换为UTC?如果我确实收集了用户的时区信息,我将如何将现有的mysql日期时间格式转换为UTC?我对使用UTC日期的一般往返工作流程也有疑问。以下是我认为它的工作原理:
创建新约会时:
这准确吗?感谢您的帮助,想要正确地做到这一点,但不知道从哪里开始使用所有这些现有设备,并且没有时区信息:)
答案 0 :(得分:1)
MySQL的TIMESTAMP
数据类型(与其DATETIME
相反)在内部以UTC格式存储。它与客户端time_zone
之间的转换是在从客户端接收数据/向客户端发送数据时执行的:只需要在会话开始时设置该变量:
SET time_zone = 'GMT';
至于转换现有时间,您可以使用MySQL的CONVERT_TZ()
功能:
UPDATE my_table SET my_column = CONVERT_TZ(my_column, 'GMT', 'MET');
在MySQL Server Time Zone Support下阅读更多内容。