JavaScript获取某一天所在的星期


Posted in Javascript onSeptember 05, 2019

导语: 如何获取今天或者某一天所在星期的开始和结束日期,或者如何获取整个星期的日期

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

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

function getWeekStartAndEnd() {
  const oneDayTime = 1000 * 60 * 60 * 24; // 一天里一共的毫秒数
  const today = new Date();
  const todayDay = today.getDay(); // 获取今天是星期几,假设是周3
  const 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; // 若那一天是周末时,则强制赋值为7
  const 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; // 若那一天是周末时,则强制赋值为7
  const 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;
}

总结

以上所述是小编给大家介绍的JavaScript获取某一天所在的星期,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
ExtJs之带图片的下拉列表框插件
Mar 04 Javascript
JqGrid web打印实现代码
May 31 Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 Javascript
javascript求日期差的方法
Mar 02 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
基于form-data请求格式详解
Oct 29 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 Javascript
原生JS实现贪吃蛇小游戏
Mar 09 Javascript
layui table设置某一行的字体颜色方法
Sep 05 #Javascript
微信小程序HTTP接口请求封装代码实例
Sep 05 #Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 #Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 #Javascript
layui动态加载多表头的实例
Sep 05 #Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 #Javascript
layui多iframe页面控制定时器运行的方法
Sep 05 #Javascript
You might like
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
解析php中反射的应用
2013/06/18 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
python显示天气预报
2014/03/02 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
spyder常用快捷键(分享)
2017/07/19 Python
django+mysql的使用示例
2018/11/23 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
投标服务承诺书
2014/05/28 职场文书
村官个人总结范文
2015/03/03 职场文书
先进个人主要事迹范文
2015/11/04 职场文书