标题说明了一切。我正在使用MomentJS在其他领域,所以我对使用力矩的解决方案感到满意(或不使用 - 任何一种方式都可以)。在此解决方案中,该函数将返回到比较日期的最短路径。例如将 12-31 与 01-01 进行比较将返回 1,而不是 364。基本上这就是我想要做的:
var today = '08-06'; // august 6th
var dateOne = '09-03' // september 3rd
var dateTwo = '02-29' // february 29th
var dateThree = '01-01' // january 1st
getDifferenceInDays(today, dateOne); // => 28
getDifferenceInDays(today, dateTwo); // => -159
getDifferenceInDays(today, dateThree); // => 147
最佳答案
这适用于 MomentJS。需要注意的是,当您初始化 MomentJS 日期时,它会隐式地将年份添加到今年。因此,假设这些值是针对今年计算的
function getDifferenceInDays(date1, date2) {
var day1 = moment(date1,'MM-DD').dayOfYear();
var day2 = moment(date2,'MM-DD').dayOfYear();
var diff1=(day2 - day1)
var diff2=365- Math.abs(diff1)
if (Math.abs(diff1)>Math.abs(diff2)) {
return diff2;
} else {
return diff1;
}
}
var today = '08-06'; // august 6th
var dateOne = '09-03' // september 3rd
var dateTwo = '02-29' // february 29th
var dateThree = '01-01' // january 1st
console.log(";;;;")
console.log(getDifferenceInDays(today, dateOne)); // => 28
console.log(getDifferenceInDays(today, dateTwo)); // => -159
console.log(getDifferenceInDays(today, dateThree)); // => 147
关于javascript - 如何在不使用年份的情况下比较 Javascript 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858608/