4

这对我来说真的很奇怪。

我试过了: <?php echo strtotime(date("Y-m-d H:i:s")); ?>

它返回:1351498120

另外,当我运行这个查询时 SELECT UNIX_TIMESTAMP(now())

它返回了相同的结果:1351498120

但是当我尝试时:<?php echo strtotime(date("2012-10-29 18:00:00")); ?>

它返回:1351533600

然而,如果我运行这个查询:SELECT UNIX_TIMESTAMP('2012-10-29 18:00:00')

它返回:1351513800

现在我的问题是:为什么 php 和 mysql 的时间戳对于当前日期是相同的,但对于未来日期是不同的?有没有办法比较它们的未来日期?

(注意:我将 UTC 作为 php 中的默认时区)

4

2 回答 2

7

两者之间有5.5 小时的差异,这表明这是一个时区问题,在任一端。MySql Server 的时区可以配置不同。

SET time_zone = timezonename;

可用于设置当前会话的时区。检查MySQL 日期和时间函数

于 2012-10-29T08:10:51.190 回答
2

尝试设置默认时区

http://php.net/manual/en/function.date-default-timezone-set.php

于 2012-10-29T08:12:42.550 回答