JavaScript Date.toJSON()会生成错误的时间和分钟的日期
我想打印日期到ISO-8601
标准: YYYY-MM-DDTHH:mm:ss.sssZ
所以我使用了下面的代码行,但是我得到了意外的输出
var date = new Date(2012, 10, 30, 6, 51);
print('UTC Format: '+date.toGMTString());
print('toString() method: '+date.toString());
print('toJSON() method: '+date.toJSON());//print hours and minutes incorrectly
print('to UTCString() method: ' + date.toUTCString());
相应的输出是
UTC Format: Fri, 30 Nov 2012 01:21:00 GMT
toString() method: Fri Nov 30 2012 06:51:00 GMT+0530 (India Standard Time)
toJSON() method: 2012-11-30T01:21:00.000Z
to UTCString() method: Fri, 30 Nov 2012 01:21:00 GMT
toJSON()方法不正确地打印小时和分钟,但toString()打印正确,我想知道这是什么原因。 我是否必须为Date对象添加时间偏移量,如果是,那么该怎么做?
var date = new Date();
console.log(date.toJSON(), new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON());
date.toJSON()
将UTC日期打印成格式为json-date的字符串。
如果您希望打印本地时间,则必须使用getTimezoneOffset(),它会以分钟为单位返回偏移量。 您必须将此值转换为秒并将其添加到日期的时间戳中:
var date = new Date(2012, 10, 30, 6, 51);
new Date(date.getTime() + (date.getTimezoneOffset() * 60000)).toJSON()
链接地址: http://www.djcxy.com/p/13581.html
上一篇: JavaScript Date.toJSON() produces a date which has wrong hours and minutes