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 相关文章推荐
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
May 13 Javascript
JavaScript日历实现代码
Sep 12 Javascript
javascript列表框操作函数集合汇总
Nov 28 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
第一篇初识bootstrap
Jun 21 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
Dec 08 Javascript
js实现截图保存图片功能的代码示例
Feb 16 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
vue element动态渲染、移除表单并添加验证的实现
Jan 16 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 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 时间转换Unix时间戳代码
2010/01/22 PHP
php array的学习笔记
2012/05/10 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
vue.js的提示组件
2017/03/02 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
简单实现js鼠标跟随效果
2020/08/02 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
python实现电子词典
2020/03/03 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
战友聚会邀请函
2014/01/18 职场文书
环境日宣传活动总结
2014/07/09 职场文书
超市创业计划书
2014/09/15 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书