我正在尝试用JavaScript填充即将到来的星期四。这个工作一直持续到月底。如果是8月25日的话
我正在寻找一个更聪明的解决方案,以支持数月等。
document.getElementById("mydiv").innerHTML = getNextThursday();
function getNextThursday() {
var today = new Date();
var year = today.getFullYear();
var mes = today.getMonth()+1;
var dia = today.getDate() + ((7 - today.getDay() + 4) % 7 || 7);
var fecha = "Next Thursday - "+mes+"/"+dia+"/"+year;
return fecha;
}
<span id="mydiv"> Date</span>
发布于 2022-08-25 13:16:16
如果我保留您的逻辑,您必须只使用本机setDate()来设置日期。
function getNextThursday() {
const d = new Date();
d.setDate(d.getDate() + (((4 + 7 - d.getDay()) % 7) || 7));
const year = d.getFullYear();
const mes = d.getMonth()+1;
const dia = d.getDate();
const fecha = "Next Thursday - "+mes+"/"+dia+"/"+year;
return fecha;
}
发布于 2022-08-25 13:22:55
首先将日期设置为下星期四,然后得到年、月和日的值。
function getNextThursday(date = new Date()) {
// Copy date so don't affect original
let d = new Date(date);
// Set d to next Thursday first
d.setDate(d.getDate() + ((7 - d.getDay() + 4) % 7 || 7));
return d;
}
[new Date(2022,7,24), // Wed 24 Aug 2022
new Date(2022,7,25), // Thu 25 Aug 2022
new Date(2022,7,26), // Fri 26 Aug 2022
new Date() // Today
].forEach(d => console.log(
d.toDateString() + ' -> ' +
getNextThursday(d).toDateString())
);
https://stackoverflow.com/questions/73488095
复制相似问题