JavaScript 获取本周周六和周日日期的实现方法

作者:半夏

时间:2026-10-23

浏览:371

本文介绍如何使用 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 程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章