繁体   English   中英

Moment.js,下一个[工作日]

[英]Moment.js, Get next [weekday]

尝试使用moment.js获得第二个星期四(例如)。 这不是星期四。 下一个。 日期在2个星期四。

我努力了

moment().add(1, 'week').day(4)

仅在下周的星期四获取(仅在当前工作日在星期四之前有效)

有任何想法吗?

“仅获取下周的星期四(仅在当前工作日在星期四之前有效)”

发生这种情况是因为.add(1,'week')仅增加了7天并为您提供下一周的日期,而您正在获取该周的第4天。 下面的代码将完全适合您的情况。

if(moment().weekday() < 4)
 moment().add(1, 'week').day(4);
else
 moment().add(2, 'week').day(4);

不确定是否使用moment.js,但是下周四的普通js如下:

currentDate + (11 - d.getDay() % 7)

在接下来的星期四,只需增加7天。 假设当前日期是星期四,则需要两个星期的星期四,以便:

 var d = new Date(); console.log(d.toString()); // Shift to next Thursday d.setDate(d.getDate() + ((11 - d.getDay()) % 7 || 7) + 7) console.log(d.toString()) 

或通过一些测试封装在一个函数中:

 function nextThursdayWeek(d) { d = d || new Date(); d.setDate(d.getDate() + ((11 - d.getDay()) % 7 || 7) + 7); return d; } // Test data [new Date(2017,2,6), // Mon 6 Mar 2017 new Date(2017,2,7), // Tue 7 Mar 2017 new Date(2017,2,8), // Wed 8 Mar 2017 new Date(2017,2,9), // Thu 9 Mar 2017 new Date(2017,2,10), // Fri 10 Mar 2017 new Date(2017,2,11), // Sat 11 Mar 2017 new Date(2017,2,12), // Sun 12 Mar 2017 new Date() // Today ].forEach(function (date) { console.log(date.toString() + ' -> ' + nextThursdayWeek(date).toString()); }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM