4

我正在学习 javascript,我想弄清楚是否有一种简单的方法可以将标准格式的日期转换为ISO8601 格式(YYYY-MM-DDThh:mm:ssTZD)。建议?

4

3 回答 3

6

如果您所说的“标准格式日期”是指Date.parse函数和Date构造函数可接受的 IETF 标准格式的日期字符串(即:'Thu, 15 Oct 2009 12:30:00 GMT'),您可以解析日期并编写一个简单的辅助函数来返回 ISO8601 日期,使用 Date 对象作为输入:

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
于 2009-10-15T17:06:35.867 回答
5

我使用date.js来满足我所有的非人类约会需求。

于 2009-10-15T16:54:58.357 回答
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);
于 2013-09-23T07:44:26.387 回答