前言
功能需求:根据当前日期获取到本周一、本周五、上周一和上周五的日期,然后填充到前端控件中显示
一、前端页面显示
当前日期为 2022-08-22 ,根据逻辑判断如下:
本周一为 2022-08-22,本周五为2022-08-26
上周一为 2022-08-15,上周五为2022-08-19
前端页面显示:
二、js判断
jsp判断如下:
//页面初始化时加载
var _onload=function(){
//当前日期 2022-08-22 17:30:30
var today = new Date();
//构建当前日期,格式:2022-08-22 00:00:00
var year = today.getFullYear(); //本年
var month = today.getMonth()+1; //本月
var day = today.getDate(); //本日
var newDate = new Date(year+"-"+month+"-"+day+" 00:00:00"); //年月日拼接
var nowTime = newDate.getTime(); //当前的时间戳
var weekDay = newDate.getDay(); //当前星期 0.1.2.3.4.5.6 【0 = 周日】
var oneDayTime = 24*60*60*1000; //一天的总ms
var mondayTime = (1-weekDay) * oneDayTime + nowTime; //本周一的时间戳
var tuesdayTime = (2-weekDay) * oneDayTime + nowTime; //本周二的时间戳
var wednesdayTime = (3-weekDay) * oneDayTime + nowTime; //本周三的时间戳
var thursdayTime = (4-weekDay) * oneDayTime + nowTime; //本周四的时间戳
var fridayTime = (5-weekDay) * oneDayTime + nowTime; //本周五的时间戳
var saturdayTime = (6-weekDay) * oneDayTime + nowTime; //本周六的时间戳
var sundayTime = (7-weekDay) * oneDayTime + nowTime; //本周日的时间戳
var lastMondayTime = nowTime - (weekDay+6)*oneDayTime; //上周一的时间戳
var lastTuesdayTime = nowTime - (weekDay+5)*oneDayTime; //上周二的时间戳
var lastWednesdayyTime = nowTime - (weekDay+4)*oneDayTime; //上周三的时间戳
var lastThursdayTime = nowTime - (weekDay+3)*oneDayTime; //上周四的时间戳
var lastFirdayTime = nowTime - (weekDay+2)*oneDayTime; //上周五的时间戳
var lastSaturdayTime = nowTime - (weekDay+1)*oneDayTime; //上周六的时间戳
var lastSundayTime = nowTime - (weekDay+0)*oneDayTime; //上周日的时间戳
this.data.monday = mondayTime; //本周一日期赋值
this.data.firday = firdayTime; //本周五日期赋值
this.data.lastMonday = lastMondayTime; //上周一日期赋值
this.data.lastFirday = lastFirdayTime; //上周五日期赋值
}
总结
逻辑思路:
1、根据当前日期拿到当前时间戳 nowTime = newDate.getTime() ;
2、根据当亲日期拿到当前的星期 weekDay = newDate.getDay() 0代表周日,0-6为周日到周六 ;
3、计算出一天的总ms数 oneDayTime = 24 * 60 * 60 * 1000 ,每增加一天就要加一次一天的ms数;
4、计算本周日期公式 :(N - weekDay ) * oneDayTime + nowTime ,N:1到7 代表周一到周日;
5、计算上周日期公式 :nowTime - (weekDay + M) * oneDayTime ,M:0-6 代表周日到周一;
更多推荐