JavaScript 获取本周周六和周日日期的实现方法
本文介绍如何使用 JavaScript 获取当前日期所在周的周六和周日具体日期。通过计算当前星期几与周末的天数差,结合时间戳进行加减运算,再转换为 Date 对象并格式化输出。代码处理了跨月情况,确保获取准确的年月日信息。
JavaScript 获取本周周六和周日日期的实现方法
本文通过具体示例,讲解如何利用 JavaScript 获取当前日期所在周的周六和周日。内容可供开发者参考学习。
核心需求是:无论当前处于本周的哪一天,程序都能准确计算出该周周六和周日的具体日期。
实现思路如下:
以周一为例,距离周日还有 6 天(即 7-1)。将当前时间的时间戳加上 6 天的毫秒数,即可得到周日的时刻,再通过 Date 对象转换为具体的月日格式。
第一步,获取当前的系统时间。
let _nowTime=new Date().getTime();
第二步,判断当前日期是星期几。
let _week=_date.getDay();
第三步,定义一天的毫秒时长。
let _dayLongTime=24*60*60*1000;
第四步,计算周六和周日距离当前时刻的毫秒差值。
let _furtureSundayTimes = _nowTime + (7 - _week) * _dayLongTime;
let _furtureSaturdayTimes = _nowTime + (6 - _week) * _dayLongTime;
第五步,将计算出的毫秒数转换为 Date 对象。
_furtureSundayTimes = new Date(_furtureSundayTimes);
_furtureSaturdayTimes = new Date(_furtureSaturdayTimes);
第六步,从 Date 对象中提取具体的月份和日期。
// staurday
let _satYear = _furtureSaturdayTimes.getFullYear();
let _satMonth = _furtureSaturdayTimes.getMonth() + 1;
let _satDay = _furtureSaturdayTimes.getDate();
//sunday
let _sunYear = _furtureSundayTimes.getFullYear();
let _sunMonth = _furtureSundayTimes.getMonth() + 1;
let _sunDay = _furtureSundayTimes.getDate();
第七步,对月份和日期进行格式化,确保显示为两位数。
_satMonth = _satMonth >= 10 ? _satMonth : '0' + _satMonth;
_satDay = _satDay >= 10 ? _satDay : '0' + _satDay;
_sunMonth = _sunMonth >= 10 ? _sunMonth : '0' + _sunMonth;
_sunDay = _sunDay >= 10 ? _sunDay : '0' + _sunDay;
_mealSunDay = _satYear+'-'+_satMonth+'-'+_satDay;
_mealSaturDay = _sunYear+ '-'+_sunMonth+'-'+_sunDay;
8、注:之所以不仅获取周六,然后周日则用周六加1,就行,因为很有可能改周末不在同一个月份,比如3.31周六,4.01周日,月份不相同
以下是完整的方法实现代码。
function getWeekDay() {
let _date = new Date();
let _nowTime = _date.getTime();
let _week = _date.getDay();
let _dayLongTime = 24 * 60 * 60 * 1000;
let _furtureSundayTimes = _nowTime + (7 - _week) * _dayLongTime;
let _furtureSaturdayTimes = _nowTime + (6 - _week) * _dayLongTime;
_furtureSundayTimes = new Date(_furtureSundayTimes);
_furtureSaturdayTimes = new Date(_furtureSaturdayTimes);
// staurday
let _satYear = _furtureSaturdayTimes.getFullYear();
let _satMonth = _furtureSaturdayTimes.getMonth() + 1;
let _satDay = _furtureSaturdayTimes.getDate();
//sunday
let _sunYear = _furtureSundayTimes.getFullYear();
let _sunMonth = _furtureSundayTimes.getMonth() + 1;
let _sunDay = _furtureSundayTimes.getDate();
_satMonth = _satMonth >= 10 ? _satMonth : '0' + _satMonth;
_satDay = _satDay >= 10 ? _satDay : '0' + _satDay;
_sunMonth = _sunMonth >= 10 ? _sunMonth : '0' + _sunMonth;
_sunDay = _sunDay >= 10 ? _sunDay : '0' + _sunDay;
_mealSunDay = _satYear+'-'+_satMonth+'-'+_satDay;
_mealSaturDay = _sunYear+ '-'+_sunMonth+'-'+_sunDay;
let _weekendDay = [{
saturDay: _mealSunDay
}, {
sunDay: _mealSaturDay
}]
return _weekendDay;
}
此外,推荐几款常用的时间及日期计算工具供参考:
在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi
在线日期计算器/相差天数计算器: http://tools.jb51.net/jisuanqi/datecalc
在线日期天数差计算器: http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix 时间戳 (timestamp) 转换工具: http://tools.jb51.net/code/unixtime
更多关于 JavaScript 相关内容感兴趣的读者可查看本站专题:《JavaScript 时间与日期操作技巧总结》、《JavaScript 查找算法技巧总结》、《JavaScript 错误与调试技巧总结》、《JavaScript 数据结构与算法技巧总结》、《JavaScript 遍历算法与技巧总结》及《JavaScript 数学运算用法总结》
希望本文所述的实现方法对大家进行 JavaScript 程序设计有所帮助。
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
相关标签:
