js获取本周日期和上周日期


前言

功能需求:根据当前日期获取到本周一、本周五、上周一和上周五的日期,然后填充到前端控件中显示


一、前端页面显示

当前日期为 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 代表周日到周一;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐