[英]PHP MYSQL convert timezone aware dates to UTC
我正在使用现有的调度应用程序,该应用程序将约会日期/时间在mysql中存储为“ 2013-12-25 09:00:00”。 到目前为止,还没有考虑任何时区,因为该时间只是简单地发送到前端并以某种基本方式显示。 现在,我想构建一些功能,例如“在应用程序发出X小时前发送提醒”。 显然,要执行此操作,我需要知道时区以确定我是否在appt之前X个小时。
我不确定现在从哪里开始。 如何在不知道时区的情况下将现有日期转换为UTC? 如果我确实从用户那里收集了时区信息,我该如何将现有的mysql datetime格式转换为UTC? 我也对使用UTC日期的一般往返工作流程有疑问。 这是我认为的工作方式:
创建新约会时:
这个准确吗? 感谢您的任何帮助,希望能够正确执行此操作,但是不确定从所有这些现有应用程序开始,并且没有时区信息:)
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服务器时区支持”下阅读更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.