Php 将服务器MySQL时间戳转换为UTC

Php 将服务器MySQL时间戳转换为UTC,php,mysql,Php,Mysql,我一直在使用timeago插件(http://timeago.yarp.com/),它在我的localhost上工作得很好,它的MySQL将数据存储在UTC时间戳中,插件需要这样做 然而,当将我的项目上传到服务器时,一个不同类型的时间戳出现在它的MySQL数据库中。我从服务器上得到这样的时间戳:“2011年2月24日星期四下午4:29”,而我需要这样的时间戳:“2008-07-17T09:24:17Z” 知道如何使用php转换时间戳吗 编辑:数据库中错误格式存储的时间戳由mysql自动生成 编辑

我一直在使用timeago插件(http://timeago.yarp.com/),它在我的localhost上工作得很好,它的MySQL将数据存储在UTC时间戳中,插件需要这样做

然而,当将我的项目上传到服务器时,一个不同类型的时间戳出现在它的MySQL数据库中。我从服务器上得到这样的时间戳:“2011年2月24日星期四下午4:29”,而我需要这样的时间戳:“2008-07-17T09:24:17Z”

知道如何使用php转换时间戳吗

编辑:数据库中错误格式存储的时间戳由mysql自动生成


编辑2:这是一个类型为“timestamp”的字段,当在db中插入行时,默认设置为“CURRENT\u timestamp”

选择UNIX\u timestamp(“您的\u日期”)作为\u日期

$date('whatever_format',$timestamp_from_mysql)在php中

你得到了一个奇怪的MySQL字符串,你确定它在Datetime字段中吗

您可以通过以下方式从MySQL获得UNIX时间戳(从Epoc开始的秒数),这种格式在多个平台上得到广泛接受:

SELECT UNIX_TIMESTAMP( table.datetime_field ) as datetime_field FROM table
使用一些工具,您可以将其转换为所需的格式:

echo date( 'c', $record[ 'datetime_field' ] );

我认为这就足以解决您的问题。

在内部,[MySQL时间戳列][1]存储为[UTC][2],但在选择日期时,MySQL将自动将其转换为当前会话时区

存储日期时,MySQL将假定该日期在当前会话时区中,并将其转换为UTC进行存储

选择UTC格式的时间戳列 无论当前MySQL会话处于哪个时区:

SELECT 
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime` 
FROM `table_name`
您还可以将服务器或全局或当前会话时区设置为UTC,然后选择时间戳,如下所示:

SELECT `timestamp_field` FROM `table_name`

我在这里做了一个备忘表:

这是一个类型为“timestamp”的字段,当行插入到dbhey中时默认设置为“CURRENT\u timestamp”,但我的sql查询是这样的:从线程注释中选择*,其中父\u id=0 order by created\u at DESC如何在该查询中添加UNIX\u时间戳格式?
选择*,UNIX\u时间戳(列)作为列…