gpt4 book ai didi

PHP MYSQL 将时区感知日期转换为 UTC

转载 作者:行者123 更新时间:2023-11-29 00:21:47 24 4
gpt4 key购买 nike

我正在开发一个现有的计划应用程序,它在 mysql 中将约会日期/时间存储为“2013-12-25 09:00:00”。没有考虑时区,直到现在,时间只是简单地发送到前端并以某种基本方式显示。现在,我想构建一些功能,例如“在 appt 前 X 小时发送提醒”。显然,要做到这一点,我需要知道时区以确定我是否比预约时间早 X 小时。

我现在不太确定从哪里开始。在不知道时区的情况下如何将现有日期转换为 UTC?如果我确实从我的用户那里收集了时区信息,我将如何将现有的 mysql 日期时间格式转换为 UTC?我还对使用 UTC 日期的一般往返工作流程有疑问。以下是我认为它的工作原理:

  1. 以 UTC 格式存储所有日期
  2. 以 UTC 格式将所有日期传递给客户端
  3. 让客户端为用户申请抵消

创建新约会时:

  1. 根据用户偏移将日期/时间转换为 UTC
  2. 存储在 UTC
  3. 使用#1 重新启动进程

这是准确的吗?感谢您的帮助,想正确地做到这一点,但不确定从哪里开始使用所有这些现有的应用程序,也没有时区信息:)

最佳答案

MySQL 的 TIMESTAMP数据类型(与其 DATETIME 类型相反)在内部存储为 UTC。与客户的 time_zone 之间的翻译在从客户端接收数据/向客户端发送数据时执行:只需要在 session 开始时设置该变量:

SET time_zone = <strong><em>'GMT'</em></strong>;

至于转换现有的时间,你可以利用MySQL的CONVERT_TZ()功能:

UPDATE <strong><em>my_table</em></strong> SET <strong><em>my_column</em></strong> = CONVERT_TZ(<strong><em>my_column</em></strong>, <strong><em>'GMT'</em></strong>, <strong><em>'MET'</em></strong>);

阅读更多 MySQL Server Time Zone Support .

关于PHP MYSQL 将时区感知日期转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com