计算两个时间戳之间的差异并获得 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 时间戳的差异的主要内容,如果未能解决你的问题,请参考以下文章