我想以年、月和日为单位获得两个日期之间的差异

时间:2021-06-28 04:01:10

标签: javascript date

我试图以年、月、日为单位计算两个日期之间的差异。到目前为止,我已经尝试了我所知道的一切,但到目前为止我还没有得到我想要得到的。

这是我最后一次尝试,问题在于我将 5 年转换为月和日,而不是获得剩余年数、剩余月数和天数的差异,

button.addEventListener('click',()=>{

 let m = moment(selectDate.value);
 let applyingDate = m.add(5,"years");
 let cur = moment();
 let diff = applyingDate - cur;
 let years = Math.floor(diff/(1000*60*60*24)/365);
 let months = Math.floor(diff/(1000*60*60*24)/365/12);
 let days = Math.floor(diff/(1000*60*60*24)/30);


console.log(years,months,days);
});

有什么帮助吗?对这个概念的解释将不胜感激<3

1 个答案:

答案 0 :(得分:0)

看起来您已经在使用 moment.js,我建议您查看文档中的 durat section,因为它提供了一种非常好的方式来满足您的需求。

对于您的用例,我相信这可以解决您的问题:

let m = moment(selectDate.value);
let applyingDate = m.add(5,"years");
let cur = moment();

const diffDuration = moment.duration(applyingDate.diff(cur))

return [
  diffDuration.years(),
  diffDuration.months(),
  diffDuration.days()
]

它与我创建的this fiddle非常相似

相关问题