[英]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.