【问题标题】:Moment.js - find previous range based on current range of dateMoment.js - 根据当前日期范围查找以前的范围
【发布时间】:2015-10-14 18:28:51
【问题描述】:

我正在使用 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);

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

有什么想法吗!?

【问题讨论】:

  • 那么,10 月 2 日不在这两个范围内?你是如何使用矩或矩范围的?您只是在这里显示Date 对象。
  • 另外,您需要展示您已经尝试过的内容。仅仅陈述您的要求是不够的。见How do I ask a good question?

标签: javascript date momentjs


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多