2017-09-05 48 views
0

我想从两个JavaScript日期时间戳获得日/时/分差,当前时间减去将在应用程序前端显示的未来事件时间。不能在javascript中获取日期时间差(nodejs)

两个日期: 未来事件的日期 - 2017年10月1日18:00:00 当前日期 - 现在()

当前代码:

var currentTime = new Date(); 
var eventStarts = results[0][i].eventstarts; 
var difference = differenceInMilliseconds(eventStarts, currentTime); 
var date = new Date(difference); 
var days = date.getDay(); 
var hours = date.getHours(); 
var minutes = "0" + date.getMinutes(); 
var formattedTime = days + ':' + hours + ':' + minutes.substr(-2); 

这不能正常工作和我无法弄清楚为什么,它返回的2天差距显然不正确,应该是29天以上。

我目前使用的NPM包日期FNS,我不介意尝试另一个包是否会助阵

+2

你试过时刻http://momentjs.com/? – CascadiaJS

+0

在拼写JavaScript时要小心,以避免与Java的搜索冲突。 –

回答

3

当你有一个Date,它的基础上,1月1日1970年。所以,当您正在设置new Date(difference)。你正在设定与1970年1月1日相关的日期 - 所以不是你要找的。

我会建议你使用库moment.js,它允许简单的日期操作。


@manzurul例如Here

var now = "04/09/2013 15:00:00"; 
var then = "02/09/2013 14:20:30"; 

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss")); 
var d = moment.duration(ms); 

console.log(d.days(), d.hours(), d.minutes(), d.seconds()); 
+1

啊好吧,这是有道理的,我以前从未使用过moment.js,我的代码如何与moment.js一起工作? – Charles

+0

[这里](https://stackoverflow.com/questions/18623783/get-the-time-difference-between-two-datetimes)是一个关于获取两个日期之间的差异的stackoverflow帖子 –