将正常日期转换为ISO-8601格式

可能重复:
如何在Javascript中输出ISO-8601格式的字符串?

我有个约会

Thu Jul 12 2012 01:20:46 GMT+0530 

如何将其转换为ISO-8601格式

 2012-07-12T01:20:46Z 

在大多数较新的浏览器中,你有.toISOString()方法,但在IE8或更早版本中你可以使用以下内容(取自Douglas Crockford的json2.js ):

 // Override only if native toISOString is not defined if (!Date.prototype.toISOString) { // Here we rely on JSON serialization for dates because it matches // the ISO standard. However, we check if JSON serializer is present // on a page and define our own .toJSON method only if necessary if (!Date.prototype.toJSON) { Date.prototype.toJSON = function (key) { function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; }; } Date.prototype.toISOString = Date.prototype.toJSON; } 

现在你可以安全地调用`.toISOString()方法。

.toISOString()还有.toISOString()方法。 您可以将其用于支持ECMA-Script 5的浏览器。对于那些没有的人,请安装如下方法:

 if (!Date.prototype.toISOString) { Date.prototype.toISOString = function() { function pad(n) { return n < 10 ? '0' + n : n }; return this.getUTCFullYear() + '-' + pad(this.getUTCMonth() + 1) + '-' + pad(this.getUTCDate()) + 'T' + pad(this.getUTCHours()) + ':' + pad(this.getUTCMinutes()) + ':' + pad(this.getUTCSeconds()) + 'Z'; }; }