进行搜索并没有带来太多成果。希望您能提供帮助!
我正在寻找这样的句子:
下一个星期一会议将从10月19日星期一[1]开始,持续7周,直到11月30日星期一[2]
其中[1]是下一个星期一的日期, 除非星期一是将来的4天或更短,在这种情况下,它将是下一个星期一。而且,[2]比[1]中提到的星期一晚了7周。
作为奖励,如果它在一周中的其他几天都有效,那就太棒了!
日期可以基于客户端浏览器。我希望完全在网站的客户端JS中实现此功能。
任何帮助或正确方向的指点?
答案 0 :(得分:1)
let date = new Date();
let nextMonday = new Date();
let daysToNextMonday = new Date();
nextMonday.setDate(date.getDate() + (1 + 7 - date.getDay() % 7));
let diffTime = Math.abs(nextMonday - date);
daysToNextMonday = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); //full days, no fractions
if (daysToNextMonday <= 4) {
nextMonday.setDate(nextMonday.getDate() + 7);
}
let sevenWeeksAfter = new Date(nextMonday);
sevenWeeksAfter.setDate(nextMonday.getDate() + 7 * 7);
const monthNextMonday = new Intl.DateTimeFormat('en', {
month: 'long'
}).format(nextMonday);
const dayNextMonday = new Intl.DateTimeFormat('en', {
day: '2-digit'
}).format(nextMonday);
const monthSevenWeeksAfter = new Intl.DateTimeFormat('en', {
month: 'long'
}).format(sevenWeeksAfter);
const daySevenWeeksAfter = new Intl.DateTimeFormat('en', {
day: '2-digit'
}).format(sevenWeeksAfter);
let text = `The next Monday session starts on Monday ${monthNextMonday} ${dayNextMonday}th and runs for 7 weeks until Monday ${monthSevenWeeksAfter} ${daySevenWeeksAfter}th`;
console.log(text);