Moment.js - 根据当前的日期范围查找以前的范围

时间:2015-10-14 18:28:52

标签: javascript date momentjs

我正在为Moment.js使用插件 - moment-range

是否可以根据当前日期范围获取以前的日期范围。例如,我有以下情况:

var currentStart = new Date(2014,11,01);
var currentEnd = new Date(2015,10,01);

上述范围 11个月,现在我们需要之前的11个月,在这种情况下将是:

var previousStart = new Date(2013,11,01);
var previousEnd = new Date(2014,10,01);

我不确定计算之前几个月的最佳方式是什么,或者是否有更简单的方法来处理日期范围。

任何想法!?

1 个答案:

答案 0 :(得分:0)

这是基于您设置的任何日期的当前范围的先前范围:

var dateStart = "01-01-2021";
var dateEnd   = "01-31-2021";
// calcule date diff between two date
var diffDays = (Math.ceil((Math.abs(new Date(dateEnd) - new Date(dateStart)))/ (1000 * 60 * 60 * 24))) + 1;
    
    
// Get Previous Date Start (Needed for Percent)
var previousStart.setDate(new Date(dateStart).getDate() - diifDaysFinale);
    
// Get Previous Date End (Needed for Percent)
var previousEnd.setDate(new Date(previousDateStart).getDate() + (diffDays-1));
    
console.log("previousStart: ",previousStart);
console.log("previousEnd: ",previousEnd);

或通过使用时刻:

var previousStart = moment(dateStart).subtract(moment(dateEnd).diff(moment(dateStart), 'days') + 1,'days').format('YYYY-MM-DD');
var previousEnd = moment(dateStart).subtract(1,'day').format('YYYY-MM-DD');
相关问题