JavaScript - 从当前日期获取一周的第一天
2022-08-30 01:17:12
我需要最快的方法来获得一周的第一天。例如:今天是11月11日,星期四;我想要本周的第一天,即11月8日,以及星期一。我需要MongoDB地图功能的最快方法,有什么想法吗?
我需要最快的方法来获得一周的第一天。例如:今天是11月11日,星期四;我想要本周的第一天,即11月8日,以及星期一。我需要MongoDB地图功能的最快方法,有什么想法吗?
使用 Date 对象的方法,您可以知道一周中的天数(0=星期日,1=星期一等)。getDay
然后,您可以将该天数减去一,例如:
function getMonday(d) {
d = new Date(d);
var day = d.getDay(),
diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
return new Date(d.setDate(diff));
}
getMonday(new Date()); // Mon Nov 08 2010
不知道它的性能如何比较,但这有效。
var today = new Date();
var day = today.getDay() || 7; // Get current day number, converting Sun. to 7
if( day !== 1 ) // Only manipulate the date if it isn't Mon.
today.setHours(-24 * (day - 1)); // Set the hours to day number minus 1
// multiplied by negative 24
alert(today); // will be Monday
或者作为一个函数:
# modifies _date_
function setToMonday( date ) {
var day = date.getDay() || 7;
if( day !== 1 )
date.setHours(-24 * (day - 1));
return date;
}
setToMonday(new Date());