我正在使用Moment.js来计算2个给定日期之间的差异。 特别是我的任务是计算给定日期范围的工作日,而不是计算周末和特殊假期(例如假期)。
我发现这个漂亮的库可以轻松地进行计算,并且与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”,.....]
答案 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'));