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

标签 javascript jquery date timestamp

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

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。 有任何想法吗?是否有更好(更简单)的方法?

提前致谢!

最佳答案

查看此处以了解有关 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。”

关于javascript - Jquery/Javascript - 每个日期到时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939998/

相关文章:

Javascript - 如何阻止 onClick 清除表单/刷新页面?

javascript - 从上到下过渡 n 秒后如何在顶部显示通知栏?

php - 在不合逻辑的格式日期之间转换(更改/斜线/到 -dash- )

mysql - 比较 MySQL 中的 TIMEDIFF

Javascript 从对象中返回变量值

mysql - 如何在mysql中选择今天前7天的生日

javascript - 查询数据未从响应传递到变量中

javascript - 显示正在加载图像直到 div 完全加载

javascript - Node.js 执行 window.postmessage

javascript - JavaScript 可以访问它自己的源 URL 吗?