Jquery/Javascript-每个日期到时间戳

Jquery / Javascript - every date to timestamp

本文关键字:日期 时间戳 Javascript- Jquery      更新时间:2023-09-26

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

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-NaNTNaN:NaN:NaNZ。有什么想法吗?有没有更好(更容易)的方法?

提前感谢!

查看此处了解有关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[h][MM]Z。"