echo strtotime('2010-09-11 12:15:01');
返回:1284207301
SELECT UNIX_TIMESTAMP('2010-09-11 12:15:01')
返回:1284200101
为什么会有差异?
答案 0 :(得分:3)
答案在php.net article about strtotime:
此函数将使用TZ环境变量(如果可用)来计算时间戳。从PHP 5.1.0开始,有更简单的方法来定义在所有日期/时间函数中使用的时区。该过程在date_default_timezone_get()函数页面中进行了解释。
简短版本:strtotime默认使用您的时区,UNIX_TIMESTAMP不会。
答案 1 :(得分:2)
这通常是由于将PHP和MySQL设置为使用不同的时区,以及如果它们碰巧位于不同的服务器中,则会导致系统时间的差异。
UNIX时间戳是自1970年1月1日午夜UNIX时期以来经过的秒数,因此时区差异将给出不同的时间戳。
答案 2 :(得分:1)
1284207301-1284200101 = 7200
- > 2小时。如此完美的差异不是由于一个错误,它是一个时区差异。很可能一个是UTC / GMT,另一个是UTC +/- 2
答案 3 :(得分:1)
我的猜测是Unix时间是GMT,另一个是你当地的时区,2个输出之间有2个小时的差异(7200/60/60)