我正在尝试用JavaScript构建一个小日历.我的日期在Firefox和Chrome中运行良好,但在IE中,日期函数返回NaN.
这是功能:
function buildWeek(dateText){
var headerDates='';
var newDate = new Date(dateText);
for(var d=0;d<7;d++){
headerDates += '<th>' + newDate + '</th>';
newDate.setDate(newDate.getDate()+1);
}
jQuery('div#headerDates').html('<table><tr>'+headerDates+'</tr></table>');
}
Run Code Online (Sandbox Code Playgroud)
dateText是本周的星期一,它实际上是以'm,d,Y'的格式在php中设置的,例如"02, 01, 2010".
我已经设置了一个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时间而不是当地时间......