js获取本周日期和上周日期 --- 随手记录备忘

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 代表周日到周一;

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值