【发布时间】:2017-02-15 16:34:30
【问题描述】:
一些背景:
我的网站在很大程度上依赖于协调各种不同时区的用户。
我在服务器端使用 Carbon 处理我的时区转换和计算,在客户端使用 moment.js。
因此,设计选择将所有日期时间(例如事件的开始时间)存储为 unix 时间戳。
问题
我对“时间戳”的定义有点困惑。在 PHPMyAdmin 中,时间戳不是 unix 时间戳,而是日期格式:
2016-10-06 20:50:46
因此,如果您想拥有当前时间戳的默认字段,那么您将获得 GMT 中的当前日期。
与 unix 时间戳整数相比,这使得转换回用户时区变得更加复杂......
问题:
我应该将我的 unix 时间戳存储为什么字段类型,目前我使用的是int(11),默认为none。通过扩展...有没有办法在 MySQL 中默认存储当前的 unix 时间戳(例如 1475971200)?
【问题讨论】:
-
您可以通过将 datetime 从和转换为 unix 时间戳来规避问题。因此,要插入 unix 时间戳,您将在表中创建一个 DATETIME 字段,并将 unix 时间戳转换为
FROM_UNIXTIME(1514789942)。然后,当您想在 unix timstamp 中检索值时,您可以执行SELECT UNIX_TIMESTAMP(my_datetime_field)
标签: php mysql date datetime unix