我将使用MySQL和PHP,并需要将时区存储在数据库中。花了一点时间阅读它,似乎我需要使用类似的东西 America/Los_Angeles
, 并不是 PST
, Pacific Standard Time
, PST8PDT
, +02.00
等
我存储整个 America/Los_Angeles
字符串,或者是否存在某种整数ID,例如 https://stackoverflow.com/a/11580459/1032531 为c#描述?如果是谁的字符串,最大字符数是多少?
我将使用MySQL和PHP,并需要将时区存储在数据库中。花了一点时间阅读它,似乎我需要使用类似的东西 America/Los_Angeles
, 并不是 PST
, Pacific Standard Time
, PST8PDT
, +02.00
等
我存储整个 America/Los_Angeles
字符串,或者是否存在某种整数ID,例如 https://stackoverflow.com/a/11580459/1032531 为c#描述?如果是谁的字符串,最大字符数是多少?
时区字符串就像 America/New_York
参考所谓的条目 区信息 数据库。读这个。 https://www.iana.org/time-zones 它目前由互联网号码分配机构维护。它发生了很大的变化,因为它的维护人员争先恐后地跟上夏令时规则和其他临时政治内容的变化。
在类UNIX系统上,条目存储在文件系统目录层次结构中,而不是存储在某些代码编号中。
你问:
我存储整个
America/Los_Angeles
串
是。
它有某种整数ID吗?
不,如果您希望您的应用程序和数据库能够面向未来,那就不是了。在MySQL的一部分中有一个time_zone_id来保存zoneinfo数据,但没有人做出任何关于保持这些数字不变的承诺。
当前(2015g)数据库中最长的字符串是“America / Argentina / ComodRivadavia”。它长32个字符。使用它可能是有意义的 VARCHAR(64)
用于存储此信息,以便您永远不会用完。
顺便说一句,WordPress为用户提供可用时区名称的选项列表(下拉列表),并将用户选择存储为文本。
点击这里 MySql DateTime
MySQL将TIMESTAMP值从当前时区转换为UTC以进行存储,并从UTC转换回当前时区以进行检索。 (对于其他类型,例如DATETIME,不会发生这种情况。)默认情况下,每个连接的当前时区是服务器的时间。可以基于每个连接设置时区。只要时区设置保持不变,您就可以获得存储的相同值。
您应该在表格中添加一个新列以保留您的时区,并在提取信息时转换您的时区。
时区字符串就像 America/New_York
参考所谓的条目 区信息 数据库。读这个。 https://www.iana.org/time-zones 它目前由互联网号码分配机构维护。它发生了很大的变化,因为它的维护人员争先恐后地跟上夏令时规则和其他临时政治内容的变化。
在类UNIX系统上,条目存储在文件系统目录层次结构中,而不是存储在某些代码编号中。
你问:
我存储整个
America/Los_Angeles
串
是。
它有某种整数ID吗?
不,如果您希望您的应用程序和数据库能够面向未来,那就不是了。在MySQL的一部分中有一个time_zone_id来保存zoneinfo数据,但没有人做出任何关于保持这些数字不变的承诺。
当前(2015g)数据库中最长的字符串是“America / Argentina / ComodRivadavia”。它长32个字符。使用它可能是有意义的 VARCHAR(64)
用于存储此信息,以便您永远不会用完。
顺便说一句,WordPress为用户提供可用时区名称的选项列表(下拉列表),并将用户选择存储为文本。
点击这里 MySql DateTime
MySQL将TIMESTAMP值从当前时区转换为UTC以进行存储,并从UTC转换回当前时区以进行检索。 (对于其他类型,例如DATETIME,不会发生这种情况。)默认情况下,每个连接的当前时区是服务器的时间。可以基于每个连接设置时区。只要时区设置保持不变,您就可以获得存储的相同值。
您应该在表格中添加一个新列以保留您的时区,并在提取信息时转换您的时区。