我尝试构建一个将每个日期转换为时间戳的函数。
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:NaN:NaNZ。 有任何想法吗?是否有更好(更容易)的方式?
提前致谢!
答案 0 :(得分:2)
点击此处了解有关ISO的更多信息: http://en.wikipedia.org/wiki/ISO_8601
用Z代替“+0000”并且有效。
“组合日期和时间表示来表示单个时间点(时间点)非常简单。它的格式为T,其中时间指示符[T]用于显示时间分量的开始时间点的日期和时间组成部分都是标准规定的日期和时间的正确表示。例如,“2007-04-05T14:30”使用日期和时间的扩展格式[YYYY] - [ MM] - [DD] T [hh]:[mm],而“20090621T0545Z”使用基本格式[YYYY] [MM] [DD] T [hh] [mm] Z。“