Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据客户每周计划创建一系列时间作业_Javascript_Date_Datetime - Fatal编程技术网

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

Javascript 根据客户每周计划创建一系列时间作业,javascript,date,datetime,Javascript,Date,Datetime,我的客户指定的每周时间表(周一下午2点、周五下午3点、周五下午4点等)。此时需要调用我的函数foo()。然后,他们会说“使用此计划调用foo()”,但只能在指定的几个月内调用 所以我有他们选择的日程安排(周一至周日为1-7天): 我需要将其转换为一组真实的天,格式如下: const scheduleArrayForFooFunction = [{ month: '3', date: '16', hour: '11', minute: '34'},{...}

我的客户指定的每周时间表(周一下午2点、周五下午3点、周五下午4点等)。此时需要调用我的函数
foo()
。然后,他们会说“使用此计划调用foo()”,但只能在指定的几个月内调用

所以我有他们选择的日程安排(周一至周日为1-7天):

我需要将其转换为一组真实的天,格式如下:

 const scheduleArrayForFooFunction = [{
    month: '3', 
    date: '16', 
    hour: '11', 
    minute: '34'},{...}]
有关于如何转换的建议吗?我有困难。或者是否有一个javascript库可以为我做这件事

就是你需要的

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

moment().startOf('month').add(1, 'week').add(-1, 'day').day('1')
(在星期一的
day('1')
链中的最后一个调用,由于您的格式,我使用了字符串,但它可以只是一个数字)

然后您可以使用
add(1,'week')
获取其他周一。并根据需要检查月份范围

更新

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

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

但我想我们为什么要增加6天还不太清楚

这似乎是一种复杂的方式来获得每月的第一个星期一(5个函数调用)。肯定有更简单的方法吗?@RobG我提供了一个更新。看一看。如果你知道更好的方法,让我们知道。
moment().startOf('month').add(6, 'day').day('1')