JavaScript日期转换为ISO8601格式?

4

我正在学习JavaScript,想知道是否有一种简单的方法将标准格式的日期转换为ISO8601格式(YYYY-MM-DDThh:mm:ssTZD)。 有什么建议吗?


3
你的问题是什么是“标准格式日期”? - slikts
抱歉,我的意思是像CMS指出的那样,使用IETF标准格式:2009年10月15日 星期四 12:30:00 GMT。 - gbr
3个回答

6
如果您所说的“标准格式化日期”是指IETF标准格式的日期字符串(即:“Thu, 15 Oct 2009 12:30:00 GMT”),该格式可被Date.parse函数和Date构造器接受,您可以解析日期并编写一个简单的辅助函数,以Date对象作为输入返回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('Thu, 15 Oct 2009 12:30:00 GMT');
console.log(ISODateString(d)); // 2009-10-15T12:30:00Z

1
这似乎是我一直在寻找的明确而简单的解决方案。谢谢您,先生。 - gbr

5
我使用 date.js 处理除人类约会需求之外的所有日期需求。

0

从日期到ISO8061:

var d = new Date();
d.toJSON(); // return "2013-09-23T07:42:18.730Z"

从ISO8061到日期:

var ms = Date.parse('2013-09-23T07:42:18.730Z');
var date = new Date(ms);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接