将MySQL UTC日期时间转换为UNIX时间戳

时间:2010-12-28 19:21:39

标签: php mysql datetime unix-timestamp

这两个都正确返回当前的UNIX时间戳:

SELECT UNIX_TIMESTAMP(LOCALTIMESTAMP()); #MySql
echo time(); //PHP

但我将UTC_TIMESTAMP存储在我的数据库中(而不是LOCALTIMESTAMPs)。

如何使用MySQL将UTC日期时间转换为UNIX时间戳?

1 个答案:

答案 0 :(得分:2)

请注意,LOCALTIMESTAMP()是NOW()的同义词。所以你真正要问的是如何获取当前时间并将其转换为GMT,然后转换为unix时间戳以存储在db中。所以这将有效:

SELECT UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@global.time_zone, 'GMT'));

另外,使用数据库的时间和日期列而不是unix时间戳总是好得多。它使得查询和显示结果变得更加容易。

更新:你确定你得到了你的想法吗? UNIX_TIMESTAMP returns a UTC based seconds since the UNIX epoch。它不会返回MySQL DateTime type。如果您有一个实际的UTC DateTime实例,那么您可以将它直接放入数据库的DateTime列中,而不必使用UNIX_TIMESTAMP作为中介。你当地有什么类型的?