根据客户每周计划创建一系列时间作业

时间:2017-12-07 19:21:28

标签: javascript date datetime

我的客户指定每周时间表(星期一下午2点,星期五下午3点,星期五也是下午4点等)。我的函数foo()需要在这些时间调用。然后,他们将使用此计划表示" Call foo()" 但仅限于若干指定月份

所以我他们选择的时间表(mon-sun的日子是1-7):

const scheduleArray = [{day: '1', hour: '11', minute: '34'},{...}]

我需要以我认为的格式转换为真实天数组:

 const scheduleArrayForFooFunction = [{
    month: '3', 
    date: '16', 
    hour: '11', 
    minute: '34'},{...}]

有关如何转换此内容的任何建议?我遇到了困难。或者是否有一个javascript库将为我做这个?

1 个答案:

答案 0 :(得分:1)

momentjs.com就是您所需要的。

例如,获取当月的第一个星期一

moment().startOf('month').add(1, 'week').add(-1, 'day').day('1')

(星期一链day('1')的最后一次调用我使用了字符串,因为你的格式,但它可以只是一个数字)

然后你可以使用add(1, 'week')来获得其他星期一。并根据需要检查月份范围。

<强>更新

RobG问是否有更简单的方法。显然它可以简化

moment().startOf('month').add(6, 'day').day('1') 

但我认为为什么我们加6天不太清楚。