2

mysql 中的 UNIX_TIMESTAMP 函数有问题。

设置: 我正在本地 Windows 机器上创建一个 wordpress 站点,并定期将我的更新上传到 ubuntu 服务器(page.ly)。有一段代码可以从 mysql 数据库中检索日期时间列。问题是检索到的时间在我的本地 Windows 机器上是正确的,但在 ubuntu 服务器上是错误的。

到目前为止 ,我所知道的我在这两个地方都运行了几个查询以尝试重现该问题。

$wpdb->get_row("SELECT UNIX_TIMESTAMP('2012-07-27 22:15:00') 
FROM {$wpdb->posts}"))

这会在我的本地机器(1343427300)上产生正确的时间,但在 ubuntu 上是错误的(提前 5 小时1343445300。我的本地时区 America/New_York。)。

$wpdb->get_row("SELECT UNIX_TIMESTAMP('2012-07-27 22:15:00')"))

这会在两台机器上产生正确的时间。就像我将我的选择与一个表、数据库中的任何表相关联时,时间得到时区偏移量 + 夏令时偏移量。我检查了两台机器上的时区偏移量。他们都是0。我有点卡在这里。感谢任何帮助。

4

1 回答 1

6

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

UNIX_TIMESTAMP 返回 UTC 时间,这样就解释了你得到的 5 小时差异

您可能希望在偏移量为 -05.00(东部)的时间上使用 CONVERT_TZ 以获得正确的 TIMESTAMP。

于 2012-07-09T21:11:19.627 回答