我有以下格式的两个日期 - 从Web服务返回:
var dateone = "2016-08-21T07:00:00.000Z";
var datetwo = "2016-08-28T07:00:00.000Z";
var datediff = datetwo - dateone;
var numdays = Math.round(datediff);
console.log("Number of Days is " + numdays);
我得到NaN
。我在这里缺少什么?
答案 0 :(得分:3)
dateone
和datetwo
个变量String
不是Date
。
试试这个:
var dateone = new Date("2016-08-21T07:00:00.000Z");
var datetwo = new Date("2016-08-28T07:00:00.000Z");
此外,减去2 Date
个对象将以毫秒为单位给出它们之间的差异,如果要确定天数,可以执行以下操作:
var dayDif = (datetwo - dateone) / 1000 / 60 / 60 / 24;
答案 1 :(得分:1)
你可以轻松地使用moment.js
var a = moment('2016-08-21T07:00:00.000Z');
var b = moment('2016-08-28T07:00:00.000Z');
var days = b.diff(a, 'days');
答案 2 :(得分:0)
除了Titus关于将它们变成日期而不是字符串的内容,请尝试这样的事情:
var oneDay = 24*60*60*1000; // Calculates milliseconds in a day
var diffDays = Math.abs((dateone.getTime() - datetwo.getTime())/(oneDay));
我不知道你对Math.round()的期望是什么,但是我没有看到它有多大帮助。 Math.abs()确保差值为正,而减去两个getTime()函数得到的差值以毫秒为单位。
希望这有帮助。
答案 3 :(得分:0)
let invitedDate = '2019-11-27T05:19:23.32';
let deference = new Date().getTime() - new Date(invitedDate).getTime();
let days = Math.round(Math.abs(deference / (1000 * 60 * 60 * 24)));
如果需要获取2个不同日期之间的时间差,可以使用Date.getTime()和上面邀请的Date示例来计算天数