2012-01-20 40 views
2

我尝试构建一个函数,将每个日期转换为时间戳。Jquery/Javascript - 每个日期到时间戳

JS

$(document).ready(function() 
{ 
    var date1 = dateParser('Fri, 20 Jan 2012 09:30:02 +0000'); 
    $('body').append('date1 -> '+date1.timeStamp +'/'+date1.isoDate + '<br />'); 

    var date2 = dateParser('2012-01-19T20:34:15+0000');  
    $('body').append('date2 -> '+date2.timeStamp +'/'+date2.isoDate + '<br />');  
}); 


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' 
} 

function dateParser(someDate) { 
    if(typeof someDate == 'string') { 
    var timeStamp = Date.parse(someDate)/1000; 
    var isoDate = ISODateString(new Date(timeStamp*1000)); 
    } 
    if(typeof someDate == 'number') { 
    var timeStamp = someDate; 
    var isoDate = ISODateString(new Date(someDate*1000)); 
    } 
    return {"timeStamp": timeStamp, "isoDate": isoDate }; 
} 

例如:http://jsfiddle.net/L6uce/6/

第一日期作品但第二返回NaN/NAN-NAN-NaNTNaN:楠:NaNZ。 任何想法?有没有更好(更简单)的方法?

在此先感谢!

+0

适用于我的谷歌浏览器。第二个日期不适用于哪个浏览器? – ori

+0

Firefox 9.0.1 .... – user970727

+0

一起阅读“NaN/NaN-NaN-NaNTNaN:NaN:NaNZ”:P – footy

回答

2

看这里了解更多关于ISO: http://en.wikipedia.org/wiki/ISO_8601

替代 “+0000” 与Z和它的作品。 “组合日期和时间表示以表示单个时间点(时间点)非常简单,它的格式为T,其中时间标志符[T]用于表示时间分量的开始表示形式,时间点的日期和时间分量都是标准规定的日期和时间的任何适当表示,例如,“2007-04-05T14:30”使用日期和时间的扩展格式[YYYY] - [MM] - [DD] T [hh]:[mm],而“20090621T0545Z”使用基本格式[YYYY] [MM] [DD] T [hh] [mm] Z。