PHP maketime在前一天给出22.00

PHP maketime在前一天给出22.00,php,javascript,Php,Javascript,我想用PHP和Javascript为给定的一天创建两个相等的时间戳,但有一点不同 2012年7月1日: PHP $test = mktime(0,0,0,7,1,2012); gives 1341093600 JavaScript var d = Date.UTC(2012,6,1); var timestamp = d/1000; gives 1341100800 为什么会有2小时的差异?调用Date.UTC将创建一个时间戳,时间戳为2012-07-01 UTC的午夜 另一方面,除了

我想用PHP和Javascript为给定的一天创建两个相等的时间戳,但有一点不同

2012年7月1日:

PHP

$test = mktime(0,0,0,7,1,2012); gives 1341093600
JavaScript

var d = Date.UTC(2012,6,1); 
var timestamp = d/1000;   gives 1341100800

为什么会有2小时的差异?

调用
Date.UTC
将创建一个时间戳,时间戳为2012-07-01 UTC的午夜

另一方面,除了配置PHP使用的时区之外,将执行相同的操作

换句话说,您的服务器未设置为UTC

最简单的解决方案可能是:

还有一种方法,或者您可以将PHP的时区设置为UTC。我会这样做,但要用代码来做,您可以使用:


出于个人喜好,我避免使用mktime。在
strotime
DateTime
之间,我很少发现mktime产生更干净、更可读代码的情况。mktime的兽性参数列表使它所在的任何一行看起来都非常可怕

$timestamp = strtotime('2012-07-01 UTC');
date_default_timezone_set('UTC');