Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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 使用Moment.js只获取未来的日子_Javascript_Momentjs - Fatal编程技术网

Javascript 使用Moment.js只获取未来的日子

Javascript 使用Moment.js只获取未来的日子,javascript,momentjs,Javascript,Momentjs,您好,我正在尝试创建给定日期的N个日期元素(moment.js对象)的列表(例如['Friday'、'周二'、'Monday'])。 我想总是从今天开始,列出未来的N个日期,但问题是,如果可能的话,它还包括过去。问题是如何优雅地解决它?我想我可以添加一些条件来修复它,但也许有一个合适的“矩.js”方法 一个例子可以更好地描述它: let initialPoint = moment(); const weekDays = ['Tuesday', 'Wednesday', 'Thursday', '

您好,我正在尝试创建给定日期的N个日期元素(moment.js对象)的列表(例如
['Friday'、'周二'、'Monday']
)。 我想总是从今天开始,列出未来的N个日期,但问题是,如果可能的话,它还包括过去。问题是如何优雅地解决它?我想我可以添加一些条件来修复它,但也许有一个合适的“矩.js”方法

一个例子可以更好地描述它:

let initialPoint = moment();
const weekDays = ['Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday'];
let days = [];

for (let i = 0; i < 7; i++) {
  days.push(moment(initialPoint).day(weekDays[i]));
}

days.forEach(day => console.log(day.format()));

正在运行的代码就在这里

注1:不关心天数的排序


注意2:这个例子没有多大意义,但它重现了我在真实应用程序中遇到的错误。

你只需要替换它

days.push(瞬间(初始点).day(工作日[i])

days.push(矩().add(i,“days”).day(工作日[i])

在循环的

工作小提琴->


希望这有帮助。

您只需更换

days.push(瞬间(初始点).day(工作日[i])

days.push(矩().add(i,“days”).day(工作日[i])

在循环的

工作小提琴->

希望这有帮助。

您可以使用MomentJS中内置的方法:

//设置初始日期
//例如,对于8月28日星期三,使用力矩(“2019年8月28日”)
//在本例中,我们只使用今天作为开始日期
设初始点=力矩();
//你想看未来几天
设numDays=7;
//您希望包括的日期
让工作日=[“周一”、“周二”、“周三”、“周四”、“周五”];
//保存日期的数组
让天数=[];
//将开始日期添加到天数组中
推送(initialPoint.format());
for(设i=1;i
您可以使用MomentJS中内置的方法:

//设置初始日期
//例如,对于8月28日星期三,使用力矩(“2019年8月28日”)
//在本例中,我们只使用今天作为开始日期
设初始点=力矩();
//你想看未来几天
设numDays=7;
//您希望包括的日期
让工作日=[“周一”、“周二”、“周三”、“周四”、“周五”];
//保存日期的数组
让天数=[];
//将开始日期添加到天数组中
推送(initialPoint.format());
for(设i=1;i
函数添加(){
常量工作日=[“周二”、“周三”、“周四”、“周五”、“周六”、“周日”、“周一”]
const weekFinl=weekDays.map(day=>day.substring(0,3));
var dayName=new Date().toString().split(“”)[0];
让天数=[];
for(设i=0;i
函数添加(){
常量工作日=[“周二”、“周三”、“周四”、“周五”、“周六”、“周日”、“周一”]
const weekFinl=weekDays.map(day=>day.substring(0,3));
var dayName=new Date().toString().split(“”)[0];
让天数=[];
for(设i=0;i添加()
Dod you want它应该是第一个元素和星期二的交换,然后转到ArrayId中的第三个元素你想要它应该是第一个元素和星期二的交换,然后转到arraySorry中的第三个元素,但是它不起作用。它只列出了MomentJS对象的02.09 7倍。听起来你想要日期字符串。我修改了上面的答案,调用
format()
来代替日期字符串。看起来更好,但我也只需要预先选择的日期
const-weekDays=[“周二”、“周三”、“周四”、“周五”、“周六”、“周日”、“周一”]在我的示例中。它可以包含少于7天的时间。因此,要跳过不在
工作日
数组中的日期,还有一个关于
format()
的问题。我想我现在不需要它了。我想使用矩对象,我需要在最后的一些格式template@igor_c我修改了答案以检查weekday是否在weekdays数组中。如果是,它会被添加。如果没有,它将跳过它。对不起,它不工作。它只列出了MomentJS对象的02.09 7倍。听起来你想要日期字符串。我修改了上面的答案,调用
format()
来代替日期字符串。看起来更好,但我也只需要预先选择的日期
const-weekDays=[“周二”、“周三”、“周四”、“周五”、“周六”、“周日”、“周一”]在我的示例中。它可以包含少于7天的时间。因此,要跳过不在
工作日
数组中的日期,还有一个关于
format()
的问题。我想我现在不需要它了。我想使用矩对象,我需要在最后的一些格式template@igor_c我修改了答案以检查weekday是否在weekdays数组中。如果是,它会被添加。如果没有,它会跳过它。我认为OP想要利用这个时刻。在对我的回答的评论中,OP说:我想使用矩对象,我需要在模板的末尾使用一些格式。我想OP想使用矩。在对我的回答的评论中,OP说:我想使用矩对象,我需要在模板的末尾使用一些格式
2019-08-27T12:31:55+02:00
2019-08-28T12:31:55+02:00
2019-08-29T12:31:55+02:00
2019-08-30T12:31:55+02:00
2019-08-31T12:31:55+02:00
2019-08-25T12:31:55+02:00
2019-08-26T12:31:55+02:00