这两个都正确返回当前的UNIX时间戳:
SELECT UNIX_TIMESTAMP(LOCALTIMESTAMP()); #MySql
echo time(); //PHP
但我将UTC_TIMESTAMP存储在我的数据库中(而不是LOCALTIMESTAMPs)。
如何使用MySQL将UTC日期时间转换为UNIX时间戳?
答案 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作为中介。你当地有什么类型的?