如何在moment.js工作日计算中获取日期列表?

时间:2018-12-11 17:40:44

标签: javascript node.js date momentjs

我正在使用Moment.js来计算2个给定日期之间的差异。 特别是我的任务是计算给定日期范围的工作日,而不是计算周末和特殊假期(例如假期)。

Moment.JS

我发现这个漂亮的库可以轻松地进行计算,并且与Moment.js集成在一起:Weekday Calc with Moment Library

这是我用来获取给定日期范围内特定日期的代码。

moment().weekdayCalc({  
  rangeStart: '1 Apr 2015',  
  rangeEnd: '31 Mar 2016',  
  weekdays: [1,2,3,4,5],  
  exclusions: ['6 Apr 2015','7 Apr 2015'],
  inclusions: ['10 Apr 2015']
})

从此代码中,我仅得到一个数字输出。 (结果是260)

我可以在JavaScript数组中获得这样的日期列表:

  

[“ yyyy-mm-dd”,“ yyyy-mm-dd”,“ yyyy-mm-dd”,“ yyyy-mm-dd”,.....]

1 个答案:

答案 0 :(得分:1)

date-fns可以轻松实现您想要的目标,我也鼓励您使用other reasons代替Moment。 我还没有测试下面的代码,但是我很确定这是符合这些原则的。

const { eachDay, isWeekend, format } = require('date-fns');
var daysArray = eachDay(
     new Date(2014, 9, 6),
     new Date(2014, 9, 10)
);

var weekdaysArray = daysArray.filter(day => !isWeekend(day));
var formattedWeekdays = weekdaysArray.map(day => format(day, 'yyyy-mm-dd'));