相关疑难解决方法(0)

新的Date()在Chrome和Firefox中的工作方式不同

我想Date通过javascript 转换日期字符串,使用此代码:

var date = new Date('2013-02-27T17:00:00');
alert(date);
Run Code Online (Sandbox Code Playgroud)

'2013-02-27T17:00:00' 是来自服务器的JSON对象的UTC时间.

但上述代码的结果在Firefox和Chrome之间有所不同:

Firefox返回:

Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
Run Code Online (Sandbox Code Playgroud)

Chrome返回:

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time) 
Run Code Online (Sandbox Code Playgroud)

这是不同的1天,我期望的正确结果是Chrome的结果.

演示代码:http://jsfiddle.net/xHtqa/2/

如何解决这个问题以从两者中获得相同的结果?

javascript timezone date

91
推荐指数
2
解决办法
6万
查看次数

恼人的javascript时区调整问题

我已经设置了一个JSON端点,它从服务器返回当前时间.例如:

{
  "myservertime": "2011-10-02T23:00+02:00"
}
Run Code Online (Sandbox Code Playgroud)

所以这就是现在的CET夏令时间.

现在,我还有一个jQuery代码,可以很好地解析它.

$.sysTime = function(success) {

            $.ajax({
                url: '/jsontimepath/',
                dataType: 'json',
                async: false,
                success: function(json){
                    sysDateTime = new Date(Date.parse(json.myservertime));
                    console.log('The system time now is: ' + sysDateTime)
                }
            });

            return sysDateTime;
        };  
Run Code Online (Sandbox Code Playgroud)

问题是当我检查控制台时,它仍然显示错误的时间......它仍然受到我的电脑时区的影响...例如,对于香港的用户,上面引用的时间会导致:

Mon Oct 03 2011 05:00:00 GMT + 0800(HKT)

我给它一个有效的ISO8601时间字符串,它只是调整它.返回的实际时间是正确的(在那个时区)......但为什么它会像那样调整它?我希望它返回CET时间而不是当地时间......

javascript ajax json iso8601

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

ajax ×1

date ×1

iso8601 ×1

json ×1

timezone ×1