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