为什么php时间戳与mysql UNIX_TIMESTAMP的未来日期不同?

时间:2012-10-29 08:08:30

标签: php mysql timestamp unix-timestamp

这对我来说真的很奇怪。

我试过了: <?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中将UTC作为默认时区)

2 个答案:

答案 0 :(得分:7)

2之间存在 5.5小时差异,这表明它是两个时区问题。 MySql Server的时区可以配置不同。

SET time_zone = timezonename;

可用于为当前会话设置时区。 检查 MySQL Date and Time Functions

答案 1 :(得分:1)