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