我一直在使用 timeago 插件(http://timeago.yarp.com/),它在我的本地主机上运行良好,它的 MySQL 将其数据存储在 UTC 时间戳中,这是插件需要工作的。
但是,当将我的项目上传到服务器时,MySQL 数据库中出现了不同类型的时间戳。我从服务器得到这样的时间戳:“2011 年 2 月 24 日星期四下午 4:29”,而我需要这样的时间戳:“2008-07-17T09:24:17Z”
知道如何使用 php 转换时间戳吗?
编辑:数据库中以错误格式存储的时间戳是由mysql自动生成的。
编辑2:它是一个“timestamp”类型的字段,当行插入到数据库中时默认设置为“CURRENT_TIMESTAMP”
MySQL 时间戳列在内部存储为 UTC,但是当选择日期时,MySQL 会自动将其转换为当前会话时区。
当存储日期时,MySQL会假设该日期位于当前会话时区,并将其转换为UTC进行存储。
无论当前 MySQL 会话位于哪个时区:
SELECT
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime`
FROM `table_name`
Run Code Online (Sandbox Code Playgroud)
您还可以将服务器或全局或当前会话时区设置为 UTC,然后选择时间戳,如下所示:
SELECT `timestamp_field` FROM `table_name`
Run Code Online (Sandbox Code Playgroud)
我在这里做了一个备忘单:MySQL 的时区应该设置为 UTC 吗?
php代码
SELECT
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime`
FROM `table_name`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12526 次 |
| 最近记录: |