Javascript 打印工作日并检查此工作日是否存在日期

Javascript 打印工作日并检查此工作日是否存在日期,javascript,arrays,date,momentjs,Javascript,Arrays,Date,Momentjs,我有一系列的日期 date_array = ["date1", "date2", "date3"] 我想打印 Tuesday: Yes Wednesday: No Thursday: No Friday: Yes Saturday: No Sunday: Yes 其中“是”和“否”取决于当前周中该工作日的date_数组中是否有日期,工作日的顺序应从今天的工作日开始 我使用的是moment,其中工作日编号可以使用e进行格式化,因此我使用moment().format('e')获取今天工作日的编

我有一系列的日期

date_array = ["date1", "date2", "date3"]
我想打印

Tuesday: Yes
Wednesday: No
Thursday: No
Friday: Yes
Saturday: No
Sunday: Yes
其中“是”和“否”取决于当前周中该工作日的
date_数组中是否有日期,工作日的顺序应从今天的工作日开始

我使用的是
moment
,其中工作日编号可以使用
e
进行格式化,因此我使用
moment().format('e')
获取今天工作日的编号。或者,可以使用
moment().day()
where sunday=0

我想我可以做一些类似的事情

//现有日期
变量日期=[moment(),moment().add(3'天'),moment().add(5'天')]
//所有工作日打印
var weekdays=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
//重新排序
var today_weekday=moment().day()
var weekdays_reordered=weekdays.splice(今天_weekday).concat(工作日)
//印刷品
weekdays_重新排序.map((weekdays,i)=>{
console.log(工作日+':'+(dates.some(date=>date.day()==i)?“是”:“否”);
});

如果我理解正确,您需要每天打印,从当天到周末,即周日?然后,您需要将
today\u weekday
设置为
moment().day()-1
(因为索引),然后在到达星期一时退出循环(将其从
map()
更改为
for()
,因为您无法脱离map)。最后,将格式化为
dddd
(工作日名称)的日期与循环中的当前工作日元素进行比较。大概是这样的:

var dates=[矩(),矩().add(4'天'),矩().add(5'天')]
//所有工作日打印
var weekdays=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
//重新排序
var today_weekday=moment().day()-1;
var weekdays_reordered=weekdays.splice(今天_weekday).concat(工作日)
对于(var i=0;idate.format(“dddd”)==weekday)?'Yes':'No');
}

假设您有一个日期数组而不是时刻对象,您可以为今天创建一个日期,然后检查数组中是否有相同的日期。然后一周中的每一天一步地进行。测试日期是否相等有点棘手,但是如果它们都是为00:00:00创建的,那么您可以只检查时间值

var base=新日期();
基准设定小时数(0,0,0,0);
var seed=新日期(+基数);
//今天、今天+2天、今天+4天的日期数组
变量日期=[新日期(种子),
新日期(seed.setDate(seed.getDate()+2)),
新日期(seed.setDate(seed.getDate()+2))
];
//测试7天,从今天开始
对于(var i=7;i;--i){
//以主机默认语言获取工作日名称
var s=base.tolocalString(未定义,{weekday:'long'})+':';
//看看是否有匹配的日期
s+=日期。查找(d=>+d==+base)?“是”:“否”;
//将1添加到日期
base.setDate(base.getDate()+1);
//对结果做点什么
控制台日志;

}
什么是现有日期?
时刻()
不返回日期,它返回时刻对象。你有一系列的日期或时刻吗?这几乎就是我需要的!问题是我希望能够将工作日数组更改为不同的名称,因此我想知道是否可以使用工作日编号而不是使用
date.format('dddddd')
?然后可以将
date.day()
date.weekday()
与当前元素的索引进行比较。不过要小心指数,阅读文档,看看本周是从周日还是周一开始,等等。如果投票人能够解释他们的投票,这会很方便。如果他们这样做了,答案可能会得到改进,如果不合适,可以删除。