JavaScript Date.toJSON() 产生的日期有错误的小时和分钟

标签 javascript

我想打印一个符合 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());

关于JavaScript Date.toJSON() 产生的日期有错误的小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646446/

相关文章:

javascript - 嵌套组件更新时,Svelte 商店不会触发 onchange

javascript - 检查 cookie 是否存在 - Chrome 扩展

javascript - 用于验证十进制数的 JavaScript 中的正则表达式

Javascript 原型(prototype)属性在数组和对象字段中无法按预期工作

javascript - Angular ngRepeat 折叠 div

javascript - jQuery .val ('' ) 不清除文本区域输入

javascript - 当使用 CSS3 或 JavaScript 单击时,如何将此 CSS 按钮设置为 "highlight"?

javascript - 模拟 $(document).ready()

javascript - MVC 3 Razor 弹出窗口

javascript - jquery 单选按钮的验证规则