计算两个时间戳之间的差异并获得 unix 时间戳的差异

Posted

技术标签:

【中文标题】计算两个时间戳之间的差异并获得 unix 时间戳的差异【英文标题】:calculate difference between two timestamp and get difference in unix timestamp 【发布时间】:2014-05-04 07:58:21 【问题描述】:

我想计算两个dateTime之间的差异,一个是用户提交的日期,另一个是当前时间:

user submitted time - now = difference in unix

用户提交时间格式为:

2014-03-26 10:52:00

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可以简单地使用返回毫秒数的getTime() 执行此操作。

var ds = "2014-03-26 10:52:00"; 
var newDate = new Date(ds).getTime(); //convert string date to Date object
var currentDate = new Date().getTime();
var diff = currentDate-newDate;
console.log(diff);

有时在解析日期字符串时有机会实现跨浏览器兼容性,所以最好像这样解析它

var ds = "2014-03-26 10:52:00";
var dateArray = ds.split(" ");  // split the date and time 
var ds1 = dateArray[0].split("-"); // split each parts in date
var ds2 = dateArray[1].split(":"); // split each parts in time
var newDate = new Date(ds1[0], (+ds1[1] - 1), ds1[2], ds2[0], ds2[1], ds2[2]).getTime(); //parse it
var currentDate = new Date().getTime();
var diff = currentDate - newDate;
console.log(diff); //timestamp difference

【讨论】:

谢谢,这是我正在寻找的解决方案。我会尽力让你知道。 @user007 缺少添加秒数。然后改这行var newDate = new Date(ds1[0], (+ds1[1] - 1), ds1[2], ds2[0], ds2[1]).getTime(); @user007 嗯好的让我们看看jsfiddle.net/praveen_jegan/LVmyj/1 尝试不同的值,让我知道哪个失败了 哦,它现在可以工作了,这是由于负面结果。因为用户输入时间是为了将来。谢谢,你的解决方案很完美。 @user007 视情况而定,有些使用 13 位的 unix 时间戳;其他 10 位数字称为 Unix epoach timestamp【参考方案2】:

你可以使用MomentJS库

 var user_submited_time = moment('2014-03-26 10:52:00');
 var now = moment();
 var value = user_submited_time - now;

【讨论】:

以上是关于计算两个时间戳之间的差异并获得 unix 时间戳的差异的主要内容,如果未能解决你的问题,请参考以下文章

计算同一张表中SQL中两个时间戳的差值

分组并计算时间戳的差异

如何从 DB2 中的两个时间戳中获取差异?

使用chrono c++库计算时间戳的差异

Pyspark:两个日期之间的差异(Cast TimestampType,Datediff)

php如何计算两个时间戳之间相差的日时分秒