本文介绍如何使用 JavaScript 根据传入的指定日期,计算并获取该周从周一到周日的所有日期列表。通过判断星期几调整基准日期,依次累加天数生成完整的周日期数组,适用于前端日期选择器或周报统计等场景。
JavaScript 根据当前日期获取一周所有日期
在 Web 开发中,获取指定日期的周范围数据是一项常见且实用的需求。
具体实现方式如下:
传入的日期(data)格式需为“年-月-日”(如 xxxx-xx-xx)。
function getWeekDataList(data) {
//根据日期获取本周周一~周日的年-月-日
var weekList = [];
var date = new Date(data);
//判断本日期是否为周日,获取本周一日期
if(date.getDay()=="0"){
date.setDate(date.getDate() -6);
}else {
date.setDate(date.getDate() - date.getDay() + 1);
}
var myDate=date.getDate();
var myMonth=date.getMonth() + 1;
if(date.getDate()<10){
myDate= '0'+ myDate;
}
if(date.getMonth() + 1<10){
myMonth='0'+myMonth;
}
weekList.push(date.getFullYear() + "-" + myMonth+ "-" + myDate);
// 获取周二以后日期
for(var i=0;i<6;i++) {
date.setDate(date.getDate() + 1);
myDate=date.getDate();
myMonth=date.getMonth() + 1;
if(date.getDate()<10){
myDate= '0'+ myDate;
}
if(date.getMonth() + 1<10){
myMonth='0'+myMonth;
}
weekList.push(date.getFullYear() + "-" + myMonth+ "-" +myDate);
}
console.log(weekList);
return weekList
}最终返回的结果为:
从周一到周日的一组日期列表。

补充说明:
JavaScript 获取当前一周的时间
// 获取当前一周的时间
getWeekTime() {
let that = this;
this.userForm.TimeChoose = [];
var currentFirstDate;
var formatDate = function(date) {
var year = date.getFullYear() + "-";
var month = date.getMonth() + 1 + "-";
var day = date.getDate() + "";
return year + month + day;
};
var addDate = function(date, n) {
date.setDate(date.getDate() + n);
return date;
};
var setDate = function(date) {
var week = date.getDay() - 1;
date = addDate(date, week * -1);
currentFirstDate = new Date(date);
var arr = [];
for (var i = 0; i < 7; i++) {
var a = formatDate(i == 0 ? date : addDate(date, 1)); //星期一开始
arr.push(a);
}
return arr;
};
setDate(new Date());
var num = 0; //num为0时表示当前周,递增或递减时周数也递增或递减
let setWeek = setDate(addDate(currentFirstDate, 7 * num));
this.userForm.TimeChoose = setWeek;
},到此这篇关于 JS 根据当前日期获取一周所有日期的文章就介绍到这了,更多相关 js 根据日期获取一周所有日期内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!