【js】判断某一天是星期几
我们会遇到的需求的是,获取今天或者某一天所在星期的开始和结束日期。
我们这里来获取今天所在星期的始末日期,我们可以通过(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】判断某一天是星期几相关推荐
- JS判断日期是否在同一个星期内,和同一个月内
今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...
- js处理时间戳为各种格式/js判断公历/农历/周历节日和节气
js获取时间 var date = new Date(); date.getYear();//获取当前年份距离1900年的年份 date.getFullYear();//获取当前年份 //date.g ...
- js 判断js,css是否引入,确保不重复引入
js 判断js,css是否引入,确保不重复引入 (2009-10-31 21:33:44) 转载▼ 标签: 杂谈 分类: js 基本原理: function loadjscssfile(filenam ...
- js判断手机浏览器屏幕方向
/* js判断手机浏览器屏幕方向*/var direction = {__getOrientation: function () {if (window.orientation == 0 || win ...
- js的时间 java怎么处理,JS实现处理时间,年月日,星期的公共方法示例
本文实例讲述了JS实现处理时间,年月日,星期的公共方法.分享给大家供大家参考,具体如下: 在项目中用到的,用js 来得到年月日,星期,当前多少个周的函数,备忘在这里,以后参考. Date.protot ...
- PHP和js判断访问设备是否是微信浏览器实例
PHP和js判断访问设备是否是微信浏览器实例,代码非常精简,适合新手学习. js判断是否是微信浏览器: function is_weixin() { var ua = window.navigator ...
- js判断是否包含指定字符串
CreateTime--2017年2月28日09:37:06 Author:Marydon js判断是否包含指定字符串 var inputValue = "thunder://piaohua ...
- js 判断字符串是否包含某字符串
2019独角兽企业重金招聘Python工程师标准>>> js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf var Cts = "bblText ...
- 移动端IOS和androi及浏览器js判断[转载]
转载自:http://www.niutifa.com/?p=561 移动端IOS和androi及浏览器js判断: <script type="text/javascript" ...
- 最短JS判断是否为IE6(IE的写法)
常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测. var isIE=!!window.ActiveXObject; var isIE6 ...
最新文章
- 竟有内鬼!北理工硕士生「复制粘贴」论文,旷视研究员最新声明
- Head First Python-Python中与文件相关的操作-读、处理、写
- 区块链与分享型数据库
- java爬虫防屏蔽_Java爬虫技术之绕过百度云防护抓取网站内容
- 机器学习:维度灾难(Curse of Dimensionality)
- 修改windows默认远程管理端口
- java随机数Reandom(简单介绍)
- linux 正向代理与反向代理
- 485.最大连续1的个数
- 代码格式化工具 Clang-format
- 软件工程导论复习知识点
- 金山电脑公司总经理雷军(转载)
- hbase版本与Hadoop版本支持关系(官方)
- 类似于talkingdata的灵动功能的实现
- ps2022 - ps to dxf
- 网络安全新晋网红“零信任”
- idea显示Multiple Spring Boot run configurations were detected. Services allows to manage multiple
- Apereo CAS 5.0.X 配置数据库认证方式
- UG476 GT Transceivers文档翻译和自身理解
- .net6API使用AutoMapper和DTO
热门文章
- 部署到线上的网页,提示网页不安全的解决办法
- python多线程库_python多线程库
- (上)基于提升HOG特征的自动多斑马鱼跟踪 Automatic multiple zebrafish tracking based on improved HOG features
- CVPR 2020代码开源的论文最全合集
- c#开发Windows服务程序指南
- android布局分析工具
- 8.7 存储容量的计算
- 买学生台灯应该怎么选择?学生护眼台灯推荐
- php rabbitmq非阻塞,Python-RabbitMQ-RPC(非阻塞版)
- 西南民族大学计算机考研分数线,西南民族大学2019年考研复试分数线已公布