javascript - 打印工作日并检查该工作日是否存在日期

标签 javascript arrays date momentjs

我有一个日期数组

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/

相关文章:

javascript - 使用 Javascript 或 VBscript 将本地 Html 表单数据导出到 CSV

php - 将参数传递给 setInterval 调用的函数

javascript - jquery .click() 在 Ajax 403 响应后不起作用

JavaScript 数组分块的特定方法

javascript - 获取当前一周的开始日期和结束日期(一周从星期一开始,以星期日结束)

ios - 从 Swift 中的当前日期获取下周二和周四

javascript - 将 Jasmine 与 Sublime Text 2 结合使用

c - 转换为字节数组后打印值

java - 在 Java 中为一系列整数创建数组?

sql - 生成一年中特定一周的日期