2009-10-15 108 views
4

我正在學習JavaScript,我正試圖弄清楚是否有一種簡單的方法將標準格式化日期轉換爲ISO8601 format(YYYY-MM-DDThh:mm:ssTZD)。 建議?JavaScript日期轉換爲IS8601格式?

+3

你是什麼意思的「標準格式日期」? – slikts 2009-10-15 16:45:45

+0

對不起,我的意思是像CMS所指出的IETF標準格式:星期四,15十月2009 12:30:00 GMT – gbr 2009-10-15 19:15:15

回答

6

如果你的意思是「標準格式的日期」在IETF標準格式的日期字符串(如:「星期四,2009年10月15日12:30:00 GMT」)由Date.parse功能,由是可以接受的Date構造,就可以解析日期和寫一個簡單的輔助函數返回一個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 
+1

這似乎是我一直在尋找的清晰簡單的解決方案。謝謝你,先生。 – gbr 2009-10-15 19:16:22

5

我使用date.js來滿足我所有的非人類約會需求。

+0

尼斯鏈接,謝謝。爲未來參考收藏。 – gbr 2009-10-15 19:17:27

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);