如何用js獲取當(dāng)年周數(shù)列表以及當(dāng)前日期是第幾周
獲取當(dāng)年周數(shù)列表
function getWeekList() {
const currentYear = new Date().getFullYear();
const firstDayOfYear = new Date(`${currentYear}-01-01`);
const firstThursday = new Date(firstDayOfYear);
firstThursday.setDate(
firstDayOfYear.getDate() + ((4 - firstDayOfYear.getDay() + 7) % 7) + 1
);
const weekList = [];
let currentWeek = 1;
while (firstThursday.getFullYear() === currentYear) {
weekList.push({ value: currentWeek, text: `第${currentWeek}周` });
firstThursday.setDate(firstThursday.getDate() + 7);
currentWeek++;
}
return weekList;
}
const weekList = getWeekList();
console.log(weekList);
/* 打印結(jié)果
[
{ value: 1, text: '第1周' },
{ value: 2, text: '第2周' },
{ value: 3, text: '第3周' },
// ... 其他周數(shù)
]
*/
該函數(shù)首先獲取當(dāng)前年份,然后計(jì)算出當(dāng)年第一天所在的星期幾。根據(jù)第一個(gè)星期四的日期,計(jì)算出當(dāng)年的周數(shù)。
然后循環(huán)遍歷,將周數(shù)信息添加到 weekList 數(shù)組中并返回。每個(gè)元素都是一個(gè)對(duì)象,包含 value 和 text 屬性。
當(dāng)前日期是一年中的第幾周
// 獲取當(dāng)前日期是一年中的第幾周的函數(shù)
function getWeekNumber(date) {
// 設(shè)置 Date 對(duì)象的 firstDayOfWeek 為周一
date.setHours(0, 0, 0, 0);
// 設(shè)置 Date 對(duì)象的 firstDayOfYear 為 1 月 1 日
date.setDate(date.getDate() + 4 - (date.getDay() || 7));
// 計(jì)算當(dāng)前日期是一年中的第幾周
const yearStart = new Date(date.getFullYear(), 0, 1);
const weekNo = Math.ceil((((date - yearStart) / 86400000) + 1) / 7);
return weekNo;
}
// 獲取當(dāng)前日期
const currentDate = new Date();
// 獲取當(dāng)前年份
const currentYear = currentDate.getFullYear();
// 獲取當(dāng)前日期是一年中的第幾周
const weekNumber = getWeekNumber(currentDate);
// 輸出結(jié)果
console.log(`${currentYear}年第${weekNumber}周`);
這段代碼首先獲取當(dāng)前日期,然后通過(guò) getWeekNumber() 函數(shù)計(jì)算當(dāng)前日期是一年中的第幾周。最后輸出結(jié)果,格式為 “xx年第xx周”。
注意,這個(gè)函數(shù)的實(shí)現(xiàn)是基于 ISO 8601 標(biāo)準(zhǔn)的,即一年的第一周從第一個(gè)星期四開(kāi)始計(jì)算。如果你需要使用其他定義的周數(shù)計(jì)算方式,可以根據(jù)實(shí)際需求進(jìn)行修改。
總結(jié)
到此這篇關(guān)于如何用js獲取當(dāng)年周數(shù)列表以及當(dāng)前日期是第幾周的文章就介紹到這了,更多相關(guān)js獲取當(dāng)年周數(shù)列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- js獲取當(dāng)前周、上一周、下一周日期
- javascript 當(dāng)前日期加(天、周、月、年)
- js實(shí)現(xiàn)獲取當(dāng)前時(shí)間是本月第幾周的方法
- moment.js輕松實(shí)現(xiàn)獲取當(dāng)前日期是當(dāng)年的第幾周
- JS實(shí)現(xiàn)獲取當(dāng)前所在周的周六、周日示例分析
- 怎么使用js計(jì)算當(dāng)前一周的日期
- JS如何根據(jù)當(dāng)前日期獲取一周所有日期
- moment.js 計(jì)算當(dāng)前一周、一月對(duì)應(yīng)日期的實(shí)例
- js根據(jù)當(dāng)前日期獲取前一周或者后一周等日期
相關(guān)文章
詳解async/await 異步應(yīng)用的常用場(chǎng)景
這篇文章主要介紹了詳解async/await 異步應(yīng)用的常用場(chǎng)景,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
JavaScript必看的10道面試題總結(jié)(推薦)
JavaScript 已經(jīng)成為全棧開(kāi)發(fā)技能的基石,在全棧開(kāi)發(fā)面試中都會(huì)不可避免地涉及到與 JavaScript 有關(guān)的問(wèn)題。這篇文章主要給大家介紹了關(guān)于JavaScript必看的10道面試題,需要的朋友可以參考下2021-05-05
Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案
小編在使用Bootstrap的Tooltip功能時(shí)遇到一些小問(wèn)題,換行丟失,文字不是左對(duì)齊。下面小編給大家介紹下Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案,感興趣的朋友一起看看吧2017-10-10
JavaScript自定義等待wait函數(shù)實(shí)例分析
這篇文章主要介紹了JavaScript自定義等待wait函數(shù),實(shí)例分析了自定義等待函數(shù)的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2015-03-03
JavaScript開(kāi)發(fā)者必備的10個(gè)Sublime Text插件
Sublime Text幾乎是任何開(kāi)發(fā)者在其工具箱的必備應(yīng)用程序,這篇文章主要介紹了JavaScript開(kāi)發(fā)者必備的10個(gè)Sublime Text插件,感興趣的小伙伴們可以參考一下2016-02-02
Bootstrap實(shí)現(xiàn)的表格合并單元格示例
這篇文章主要介紹了Bootstrap實(shí)現(xiàn)的表格合并單元格,涉及bootstrap界面布局相關(guān)操作技巧,需要的朋友可以參考下2018-02-02

