美文网首页
Js 获取任意一天所在的周或月的起始日期和结束日期

Js 获取任意一天所在的周或月的起始日期和结束日期

作者: 我是一个前端 | 来源:发表于2021-04-21 18:29 被阅读0次

今天有一个需求,用户选择某一天,然后选择 天 周 月 分别查询 一天 一周和一个月的数据 为了更好的用户体验 前端需要显示当前选择应的起始日期和结束日期。

天就不用说了 直接日历插件就搞定,所以需要两个方法 分别来确定 周和月的起始和结束时间。

先来周的, 已知参数就是选择的某一天,我需要推算这天所在的自然周的 周一和周日分别是哪天。

传入选择的一天 返回 所在的当周的 周一和周日


// 获取某天所在的周的起始日期和结束日期,思路是这样的,周几有对应的 int来表示 分别对应

// 1     2    3    4    5   6    0
//周一  周二  周三  周四 周五 周六 周日

//****我们可以根据 Date的方法来获取当前选择时间对应的 int值 这样我们就知道这天是星期几,在定义一个每天有多少毫秒,来通过加减得到 周一和周日分别对应的时间戳 得到时间戳 就可以随意转换时间格式了,代码如下:

/*
* 参数time 选择的某一天的时间戳
*/
// 获取某天所在的周的起始日期和结束日期
function getWeekTime(time){
  let dayCode = new Date(time).getDay();
  let dayLong = 24*60*60*1000;
  return {
      startDay: new Date(dayCode === 0 ? time-dayLong*7 : time-dayLong*(dayCode-1)),
      endDay: new Date(dayCode === 0 ? time : time+dayLong*(7-dayCode))
  }
}
// 参数传时间戳 返回当前传入时间对应周一和周日两个时间戳
console.log(getWeekTime(1619074088592))
// 参数传时间戳 返回当前传入时间对应周一和周日两个时间戳
console.log(getWeekTime(1605786401242))

接下来是获取所在月的 起始和结束时间

// 获取某天所在的月的起始日期和结束日期
function getMonthTime(time){
  let currentDay = new Date(time);
  let currentFullYear = currentDay.getFullYear();
  let currentMonth = currentDay.getMonth();
  return {
    startDay: new Date(currentDay.setDate(1)),
    endDay: new Date(new Date(currentFullYear,currentMonth+1,0))
  }
}

console.log(new Date().getTime())

先发了 晚点补充下详细思路。

相关文章

网友评论

      本文标题:Js 获取任意一天所在的周或月的起始日期和结束日期

      本文链接:https://www.haomeiwen.com/subject/hjvzlltx.html