【发布时间】:2011-11-03 22:30:33
【问题描述】:
有没有一种简单的方法可以将日期对象转换为 GMT 时间,同时也以 ISO 8601 格式显示?
【问题讨论】:
标签: javascript date format
有没有一种简单的方法可以将日期对象转换为 GMT 时间,同时也以 ISO 8601 格式显示?
【问题讨论】:
标签: javascript date format
有没有一种简单的方法可以将日期对象转换为 GMT 时间
是的:
var d = new Date();
d.toGMTString()
还能以 ISO 8601 格式显示?
函数采用form here(那里还有一个 ISO 8601 解析器)
function ISODateString(d) {
function pad(n) { return n<10 ? '0'+n : n }
return d.getUTCFullYear()
+ '-' + pad(d.getUTCMonth()+1)
+ '-' + pad(d.getUTCDate())
+ 'T' + pad(d.getUTCHours())
+ ':' + pad(d.getUTCMinutes())
+ ':' + pad(d.getUTCSeconds())
+ 'Z'
}
我遇到的最佳解决方案是使用 Moment.js javascript 库并使用以下代码:
获取带有时区信息和毫秒的当前 ISO 时间
now = moment().format("YYYY-MM-DDTHH:mm:ss.SSSZZ")
// "2013-03-08T20:11:11.234+0100"
now = moment().utc().format("YYYY-MM-DDTHH:mm:ss") + "Z"
// "2013-03-08T19:11:11Z" <- better use the native .toISOString()
获取包含时区信息但不包含毫秒的原生 JavaScript Date 对象的 ISO 时间
var current_time = Date.now();
moment(current_time).format("YYYY-MM-DDTHH:mm:ssZZ")
【讨论】:
这里是 MDN date.toISOString() 页面,其中还包括跨浏览器兼容性代码。两种方式都从日期实例创建 ISO 8601 字符串:
【讨论】: