在JavaScript中,如何从任何日期获得正确的Unix时间戳

・3 分钟阅读

获取任何Unix时间戳的JavaScript Date对象的通用解决方案。


// Copy & Paste this
Date.prototype.getUnixTime = function() { return this.getTime()/1000|0 };
if(!Date.now) Date.now = function() { return new Date(); }
Date.time = function() { return Date.now().getUnixTime(); }

// Get the current time as Unix time
var currentUnixTime = Date.time();
currentUnixTime = Date.now().getUnixTime(); // same as above

// Parse a date and get it as Unix time
var parsedUnixTime = new Date('Mon, 25 Dec 1995 13:30:00 GMT').getUnixTime();
// parsedUnixTime==819898200

动机

Unix时间(又名epoch时间)在Unix和许多其他操作系统和文件格式中被广泛使用,很遗憾,c样式time()调用和JavaScript的Date.getTime()之间存在一个很小的差异:

Unix时间戳定义为自1970年1月1日星期四00:00:00协调世界时(UTC)以来经过的秒数。

Javascript的date,gettime()

解决方案

复制并粘贴以下代码到你的Javascript开头:


Date.prototype.getUnixTime = function() { return this.getTime()/1000|0 };
if(!Date.now) Date.now = function() { return new Date(); }
Date.time = function() { return Date.now().getUnixTime(); }

***完成***!

用法

上面三行添加:

  • Date.getUnixTime()返回Unix纪元时间,
  • date,now()polyfill for older browsers,,
  • Date.time()是一个c样式的helper函数,它返回当前的Unix时间,

将当前时间作为Unix时间戳获取

var currentUnixTime = Date.time();

这是一个

var currentUnixTime = Date.now().getUnixTime();

以JavaScript日期对象获取当前时间

var currentTime = Date.now();

获取任何JavaSript日期对象的Unix时间


var someDate = new Date('Mon, 25 Dec 1995 13:30:00 GMT');
var theUnixTime = someDate.getUnixTime();

相关工作

  • momentJS是一个优秀的库,用于解析,操作和格式化JavaScript中的日期和时间值,

方玉 profile image