猿问

如何在Javascript中以mm-dd-hh格式获取两个日期的差

我可以使用moment.js或纯js获得两个日期之间的差异。


在moment.js中


var a = moment(timestamp1);

var b = moment(timestamp2);

var month =a.diff(b, 'month');

var day =a.diff(b, 'day') - month;

var year =a.diff(b, 'hours');

月返回月,日返回天差。但是我想要答案


MM-DD-hh格式例如2个月12天5小时。我无法直接转换日期,因为还有leap年等其他问题。还有什么其他办法可以全力以赴并计算一切吗?我在angular js中这样做,如果有帮助


紫衣仙女
浏览 743回答 3
3回答

ITMISS

var date1 = new Date("4/14/2016"); var date2 = new Date("10/16/2016"); var timeDiff = Math.abs(date2.getTime() - date1.getTime()); var newDate = new Date(timeDiff); alert(newDate); alert("Month " + (newDate.getUTCMonth() + 1)); alert("Date " + newDate.getUTCDate()); alert("Hour " + newDate.getUTCHours());

红颜莎娜

您无法将差异(差异结果是数字)转换为MM-DD-hh格式,因为某些月份的长度为30天,而另一些月份的长度为31天。可以从开始和结束日期时间计算得出。您正在寻找类似的功能,但不完全相同moment("2010-01-01").from("2010-12-01")结果:一年前moment("2010-01-01").from("2010-12-01", true)结果:一年
随时随地看视频慕课网APP
我要回答