我有一个日期数组
date_array = ["date1", "date2", "date3"]
我要打印
Tuesday: Yes
Wednesday: No
Thursday: No
Friday: Yes
Saturday: No
Sunday: Yes
其中"is"和“否”取决于 date_array
中是否存在本周该工作日的日期,并且工作日的顺序应从今天的工作日开始。
我正在使用 moment
,其中工作日数字可以使用 e
进行格式化,因此我可以使用 moment().format(' 获取今天工作日的数字e')
。或者,也可以使用 moment().day()
其中 sunday=0。
我想我可以做类似的事情
// Existing dates
var dates = [moment(), moment().add(3, 'days'), moment().add(5, 'days')]
// All weekdays to print
var weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
// Reorder
var today_weekday = moment().day()
var weekdays_reordered = weekdays.splice(today_weekday).concat(weekdays)
// Print
weekdays_reordered.map((weekday, i) => {
console.log(weekday + ': ' + (dates.some(date => date.day() === i) ? 'Yes' : 'No'));
});
<script src="https://momentjs.com/downloads/moment.min.js"></script>
但我不确定如何让它发挥作用。
最佳答案
如果我理解正确的话,您需要从当天到周末(即星期日)每天打印?然后,您需要将 today_weekday
设置为 moment().day() - 1
(因为索引),然后在到达星期一时退出循环(已更改它从 map()
到 for()
,因为你无法脱离 map )。最后,将格式化为 dddd(工作日名称)的日期与循环中的当前工作日元素进行比较。像这样的事情:
var dates = [moment(), moment().add(4, 'days'), moment().add(5, 'days')]
// All weekdays to print
var weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
// Reorder
var today_weekday = moment().day() - 1;
var weekdays_reordered = weekdays.splice(today_weekday).concat(weekdays)
for(var i = 0; i < weekdays_reordered.length; i++) {
var weekday = weekdays_reordered[i];
if (weekday === "Monday" && i !== 0) break;
console.log(weekday + ': ' + (dates.some(date => date.format("dddd") === weekday) ? 'Yes' : 'No'));
}
<script src="https://momentjs.com/downloads/moment.js"></script>
关于javascript - 打印工作日并检查该工作日是否存在日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46059358/