我可以用:
创建一个JavaScript日期对象var d=new Date('2012-08-07T07:47:46Z');
document.write(d);
这将使用浏览器的时区编写日期。但我应该能够做到(没有'Z'):
var d=new Date('2012-08-07T07:47:46');
document.write(d);
返回与上面相同的内容,但根据ISO8601标准,没有时区(例如+01:00)且没有“Z”的字符串,应在本地时区考虑日期。所以上面的第二个例子应该将日期时间写为早上7:47。
我从服务器获取日期时间字符串,我想要准确显示该日期时间。有什么想法吗?
答案 0 :(得分:6)
我发现这个脚本效果很好。它扩展了Date.parse方法。
https://github.com/csnover/js-iso8601/
Date.parse('2012-08-07T07:47:46');
但它不适用于new Date()
构造函数。
答案 1 :(得分:-1)
你是对的,Javascript与ISO8601不兼容。
使用此功能转换为所需的格式:
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'
}
var d = new Date();
print(ISODateString(d));
取自:Mozilla