我们会遇到的需求的是,获取今天或者某一天所在星期的开始和结束日期。

我们这里来获取今天所在星期的始末日期,我们可以通过(new Date).getDay()来获取今天是星期几,然后再通过这个减去或者加上一定的天数,就是这个星期的开始日期和结束日期。

先看下getDay怎么用

getday()方法:

语法

dateObject.getDay()

返回值

dateObject 所指的星期中的某一天,使用本地时间。返回值是 0(周日) 到 6(周六) 之间的一个整数。

一周的时间是固定的,总共七天,写一个数组,根据getDat()返回的数字去找他的下标就可以了。

那如何得到某一天所在星期的开始和结束日期?

function getWeekStartAndEnd() {const oneDayTime = 1000 * 60 * 60 * 24; // 一天里一共的毫秒数const today = new Date();const todayDay = today.getDay(); // 获取今天是星期几,假设是周3const startDate = new Date(today.getTime() - oneDayTime * (todayDay - 1));const endDate = new Date(today.getTime() + oneDayTime * (7 - todayDay));return { startDate, endDate };
}
const week = getWeekStartAndEnd();
console.log(week.startDate, week.endDate);

是不是很完美?但,这里有一个很大的 bug!注意:如果今天是周日,那么todayDay就会是 0,若还是按照上面的思路,则星期一的日期会变成下周一的日期,星期日的日期会变成下周日的日期。因此,这里我们需要特殊处理下,当 todayDay 为 0 时,就将其赋值为 7。同时,我们还可以传入一个时间戳,获取特定某一天所在的星期。

最终的解决方案

function getWeekStartAndEnd(timestamp) {const oneDayTime = 1000 * 60 * 60 * 24; // 一天里一共的毫秒数const today = timestamp ? new Date(timestamp) : new Date();const todayDay = today.getDay() || 7; // 若那一天是周末时,则强制赋值为7const startDate = new Date(today.getTime() - oneDayTime * (todayDay - 1));const endDate = new Date(today.getTime() + oneDayTime * (7 - todayDay));return { startDate, endDate };
}

扩展

如果我要输出今天所在星期,这一周里所有的日期,该怎么办呢?很简单,先获取到这一周里的第一天,然后第一天加上oneDayTime*i的时间戳,就是第 i 天的日期,或者在前一天的基础上加上 oneDayTime 也可以。

function getAllWeekToday() {const oneDayTime = 1000 * 60 * 60 * 24;const today = new Date();const todayDay = today.getDay() || 7; // 若那一天是周末时,则强制赋值为7const startDate = new Date(today.getTime() - oneDayTime * (todayDay - 1));let dateList = [startDate];for (let i = 1; i < 7; i++) {dateList.push(new Date(startDate.getTime() + oneDayTime * i));}return dateList;
}

【js】判断某一天是星期几相关推荐

  1. JS判断日期是否在同一个星期内,和同一个月内

    今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...

  2. js处理时间戳为各种格式/js判断公历/农历/周历节日和节气

    js获取时间 var date = new Date(); date.getYear();//获取当前年份距离1900年的年份 date.getFullYear();//获取当前年份 //date.g ...

  3. js 判断js,css是否引入,确保不重复引入

    js 判断js,css是否引入,确保不重复引入 (2009-10-31 21:33:44) 转载▼ 标签: 杂谈 分类: js 基本原理: function loadjscssfile(filenam ...

  4. js判断手机浏览器屏幕方向

    /* js判断手机浏览器屏幕方向*/var direction = {__getOrientation: function () {if (window.orientation == 0 || win ...

  5. js的时间 java怎么处理,JS实现处理时间,年月日,星期的公共方法示例

    本文实例讲述了JS实现处理时间,年月日,星期的公共方法.分享给大家供大家参考,具体如下: 在项目中用到的,用js 来得到年月日,星期,当前多少个周的函数,备忘在这里,以后参考. Date.protot ...

  6. PHP和js判断访问设备是否是微信浏览器实例

    PHP和js判断访问设备是否是微信浏览器实例,代码非常精简,适合新手学习. js判断是否是微信浏览器: function is_weixin() { var ua = window.navigator ...

  7. js判断是否包含指定字符串

    CreateTime--2017年2月28日09:37:06 Author:Marydon js判断是否包含指定字符串 var inputValue = "thunder://piaohua ...

  8. js 判断字符串是否包含某字符串

    2019独角兽企业重金招聘Python工程师标准>>> js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf var Cts = "bblText ...

  9. 移动端IOS和androi及浏览器js判断[转载]

    转载自:http://www.niutifa.com/?p=561 移动端IOS和androi及浏览器js判断: <script type="text/javascript" ...

  10. 最短JS判断是否为IE6(IE的写法)

    常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测. var isIE=!!window.ActiveXObject; var isIE6 ...

最新文章

  1. 海康威视 | AI算法实习生招聘(3D检测/分割/多模态融合)
  2. 覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME
  3. Linux平台-×××
  4. 创业者的关键词:坚持、忍耐、积累
  5. Blazor University (10)组件 — 捕获意外参数
  6. uva 1152 ——4 Values whose Sum is 0
  7. STL 源码剖析 heap堆
  8. [Web 前端] 解决因inline-block元素导致的空白间距和元素下沉
  9. label mpchart 饼图_Android MPChart—饼图-Go语言中文社区
  10. BeautifulSoup库findAll()、find()方法详解
  11. Spring Boot 表单验证
  12. amd显卡用黑苹果输出黑屏_教大家黑苹果英伟达免驱显卡黑屏怎么解决的方法
  13. java判断字符串不为空_Java判断字符串是否为空的方法
  14. 子网掩码和IP地址计算网络地址和广播地址的换算
  15. 【深度学习-吴恩达】L1-3 浅层神经网络 作业
  16. Ansible详解(一)
  17. 如何用PS做出火焰文字的效果?
  18. linux 密码修改下次,Linux 强制使用者下次登入修改密码
  19. 【世纪佳缘桌面V3.1.1正式版】聊天交流工具
  20. VS2015中“项目无法加载,因为它缺少安装组件”的解决方法

热门文章

  1. unity获取Excle表格内容
  2. 跪了!3秒钟完成别人半天的工作量!网友:别再用Excel了!
  3. java oracle in 10000,Oracle 查询 in条件个数大于1000的解决方案
  4. 去哪儿网机票搜索系统的高并发架构设计(2017-03-20 蒋志伟)
  5. WMS 、ERP、TMS之间的接口方式
  6. nn.Softmax(dim=1)(outputs) 与 torch.max(probs, 1)[1]的理解
  7. Tensorflow图像分类代码理解
  8. 制作字幕的软件(小帮手~)
  9. 背景大小比率css,css – 如何计算背景大小百分比?
  10. UnityShader-素描铅笔画风格 实现详解