繁体   English   中英

Moment.js - 根据当前日期范围查找上一个范围

[英]Moment.js - find previous range based on current range of date

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

是否可以根据当前日期范围获取先前的日期范围。 例如我有以下场景:

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

上面的范围是11months ,现在我们需要前 11months ,在这种情况下将是:

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

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

有任何想法吗!?

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

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');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM