如何在JavaScript中获得下周一?我在互联网上找不到任何相关内容,我也尝试过很多代码并对此有所了解但我无法真正做到这一点.
这是我的代码:
var d = new Date();
var day = d.getDay();
d = new Date(d.setDate(d.getDate() + day + (day == 0 ? -6 : 2)));
Run Code Online (Sandbox Code Playgroud)
Ber*_*aul 39
这样做:
var d = new Date();
d.setDate(d.getDate() + (1 + 7 - d.getDay()) % 7);
console.log(d);
Run Code Online (Sandbox Code Playgroud)
Jar*_*a X 14
如果今天是星期一,这将在下周一给出
var d = new Date();
d.setDate(d.getDate() + (7-d.getDay())%7+1);
Run Code Online (Sandbox Code Playgroud)
如果今天是星期一,这将导致今天
var d = new Date();
d.setDate(d.getDate() + ((7-d.getDay())%7+1) % 7);
Run Code Online (Sandbox Code Playgroud)
如果您想要的一周中的实际日期是可变的(星期日,星期四,...),并且您想选择今天是否可以匹配,并且可能要从另一个日期开始(而不是今天),那么此功能可能会很有用:
function getNextDayOfTheWeek(dayName, excludeToday = true, refDate = new Date()) {
const dayOfWeek = ["sun","mon","tue","wed","thu","fri","sat"]
.indexOf(dayName.slice(0,3).toLowerCase());
if (dayOfWeek < 0) return;
refDate.setHours(0,0,0,0);
refDate.setDate(refDate.getDate() + !!excludeToday +
(dayOfWeek + 7 - refDate.getDay() - !!excludeToday) % 7);
return refDate;
}
console.log("Next is: " + getNextDayOfTheWeek("Wednesday", false));Run Code Online (Sandbox Code Playgroud)
如果您需要处理时区,一种选择是使用 UTCDate 方法setUTCDate()和getUTCDate()。这允许一致性,因此无论时区设置如何,计算都是相同的。
var d = new Date();
d.setUTCDate(d.getUTCDate() + (7 - d.getUTCDay()) % 7 + 1);
Run Code Online (Sandbox Code Playgroud)
(这是上面的示例,返回下一个星期一的星期一)
这是我的解决方案
var days =[1,7,6,5,4,3,2];
var d = new Date();
d.setDate(d.getDate()+days[d.getDay()]);
console.log(d);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20588 次 |
| 最近记录: |