簡體   English   中英

獲取兩個日期之間的持續時間(Moment JS)

[英]Get duration between two dates (Moment JS)

我有2個約會。 並且需要以這種格式找到它們之間的持續時間${y}year ${w}weeks ${d}d

為此,我創建了函數。 這是代碼

 setTotalDuration(): void {
    const formattedFrom = moment(this.startDate).format('YYYY-MM-DD HH:mm:ss');
    const formattedTo = moment(this.endDate).format('YYYY-MM-DD HH:mm:ss');
    const duration = moment.duration(moment(formattedTo).diff(moment(formattedFrom)));
    const y = Math.floor(duration.asYears());
    const w = Math.floor(duration.asWeeks() - y * moment().weeksInYear());
    const d = Math.floor(duration.asDays() - w * 7);
    this.totalDuration = ` ${y}year ${w}weeks ${d}d`;
}

它工作不正常,現在如果我通過例如 startDate - 19/02/2020 和 endDate - 19/02/2021,我得到持續時間 - 1year -1weeks 373d。 但我需要得到 1year 0weeks 0d

我的問題在哪里?

我希望這就是你想要的。 您可以獲得年數的差異並將其添加到初始日期; 然后獲得以周為單位的差異並將其添加到初始日期。


var moment = require("moment");

var a = moment(["2021", "02", "20"]);
var b = moment(["2020", "02", "19"]);

var years = a.diff(b, "year");
b.add(years, "years");

var weeks = a.diff(b, "week");
b.add(weeks, "weeks");

var days = a.diff(b, "days");

console.log(years + " years " + weeks + " weeks " + days + " days");


沙盒: https : //codesandbox.io/s/compassionate-bas-fg1c2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM