PHP strotime和MySQL UNIX_时间戳返回不同的整数

PHP strotime和MySQL UNIX_时间戳返回不同的整数,php,mysql,timestamp,unix-timestamp,Php,Mysql,Timestamp,Unix Timestamp,退货:1284207301 echo strtotime('2010-09-11 12:15:01'); 退货:1284200101 为什么会有差异?这通常是由于将PHP和MySQL设置为使用不同的时区,以及如果它们恰好位于不同的服务器上,系统时间的差异造成的 UNIX时间戳是自1970年UTC 1月1日午夜UNIX纪元以来经过的秒数,因此时区差异将给出不同的时间戳。答案在php.net中: 此函数将使用TZ环境变量(如果可用)计算时间戳。由于PHP5.1.0,有更简单的方法来定义在所有日期/

退货:1284207301

echo strtotime('2010-09-11 12:15:01');
退货:1284200101


为什么会有差异?

这通常是由于将PHP和MySQL设置为使用不同的时区,以及如果它们恰好位于不同的服务器上,系统时间的差异造成的


UNIX时间戳是自1970年UTC 1月1日午夜UNIX纪元以来经过的秒数,因此时区差异将给出不同的时间戳。

答案在php.net中:

此函数将使用TZ环境变量(如果可用)计算时间戳。由于PHP5.1.0,有更简单的方法来定义在所有日期/时间函数中使用的时区。这个过程在date\u default\u timezone\u get()函数页面中进行了说明


短版本:默认情况下,strotime使用您的时区,UNIX_时间戳不使用。

1284207301-1284200101=7200
->2小时。如此完美的四舍五入差异不是由于错误,而是时区差异。很可能一个是UTC/GMT,另一个是UTC+/-2

我猜Unix时间是GMT,另一个是您的本地时区,两个输出之间正好相差2小时(7200/60/60)

PHP和MySQL都在我的本地开发服务器上,GMT+1时间。@Richard yes,但是PHP和mySQL可能有不同的时区设置
SELECT UNIX_TIMESTAMP('2010-09-11 12:15:01')