当前位置: 首页 > 知识库问答 >
问题:

使用PHP将UTC日期存储到MySQL

干浩然
2023-03-14

我有一个移动应用程序和Rest服务。移动应用程序将生成并向web服务提供UTC日期、时间和时区。我需要使用PHP将这两个值存储到mysql中。

我是从远程源获取日期时间的,所以我不能使用MySQL的UTC_TIMESTAMP()来生成“当前”utc时间。

$created = "2010-09-30 12:31:10"; //Actual UTC time
$timezone = "America/Los_Angeles"

INSERT语句如何存储$CREATE,as is(UTC)而不将其存储为服务器的默认时区?

我是否必须在PHP中将它从UTC转换为我的服务器的本地时间,或者在MySQL中它是否可以边步一些?

共有1个答案

何涵衍
2023-03-14

据我所知,MySQL不支持日期列中的时区信息,例如,PostgreSQL就支持。

你为什么不能把日期按原样保存?我相当肯定不会发生转换。还有,你为什么需要时区信息呢?稍后在显示时转换成当地时间不是更有意义吗?对于正在查看信息的特定用户?

“当前时区设置不影响UTC_TIMESTAMP()等函数显示的值或DATE、time或DATETIME列中的值。这些数据类型中的值也不以UTC存储;仅当从时间戳值转换时,时区才适用于它们。如果希望对DATE、time或DATETIME值进行特定于区域设置的算术,请将它们转换为UTC,执行该算术,然后再转换回。”来源https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

也就是说,MySQL只利用时区信息从TIMESTAMP()和类似的函数返回本地时间,而不是即时转换插入或选择的数据。

 类似资料:
  • 问题内容: 我所读到的有关将时间转换为用户时区的所有信息都说,最好的方法是在UTC中存储日期和时间,然后将用户的时区偏移量添加到该时间。 如何以UTC时间存储日期?我使用MySQL DATETIME字段。 当在我的PHP代码中向MySQL添加新记录时,我将用于插入MySQL DATETIME。 我需要使用不同于存储UTC时间的其他方法吗? 问题答案: MySQL: 以’YYYY-MM-DD HH:

  • 问题内容: 我在这里看到了一些相关的问题……本质上,我想要的是将日期时间存储为UTC,并让应用程序用户选择他想显示日期的时区-time in。 由于似乎日期时间字段受基础JDBC驱动程序的影响,所以我想知道这是否是存储UTC日期时间的可接受方法: 将MySQL和Application Server计算机都设置为UTC时区(无需分开) MySQL和JVM都应该选择基础系统时间设置(如果没有其他说明的

  • 问题内容: 我需要一种简便的方法,可以在不使用任何库的情况下将日期时间戳转换为UTC(从服务器所在的任何时区)。 问题答案: 尝试getTimezone和setTimezone,请参见示例 (但这确实使用了一个类) 更新: 没有任何类,您可以尝试这样的事情: 注意:您可能还需要将时区设置回原始

  • 问题内容: 我有一个以毫秒为单位的UTC日期,我将该日期传递给Angular的日期过滤器以进行人工格式化。 很棒,除了在UTC中,而且日期过滤器认为它在当地时间。 我怎样才能告诉Angular这是UTC? 谢谢。 问题答案: 类似的问题在这里 我将重新发布我的回复并提出合并建议: 输出UTC似乎引起了一些混乱-人们似乎倾向于使用moment.js。 从此答案中借用,您可以执行以下操作(即,使用带有

  • 这是我的Firebase结构 我想在每个用户的第二个名字下面的“预订”下存储一天中的日期和时间,然后选择一天中的日期和时间。 这是我到目前为止用错误的方法得到的结果。它在名为“MyBookings”的单独子节点下设置日期 基本上,我所做的是单击一个显示日期和时间选择器的EditText,我需要将该日期存储在Firebase实时数据库中。 这是我的Firebase参考,我知道它是错误的,但不知道如何

  • 在config/app.php中,我将时区设置如下: 这是否意味着在我的应用程序中的任何地方,如果我调用这些carbon方法,它们都将是UTC,或者我仍然需要添加时区,例如carbon::now(“UTC”)?