如何用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è)對象,包含 value 和 text 屬性。
當(dāng)前日期是一年中的第幾周
// 獲取當(dāng)前日期是一年中的第幾周的函數(shù) function getWeekNumber(date) { // 設(shè)置 Date 對象的 firstDayOfWeek 為周一 date.setHours(0, 0, 0, 0); // 設(shè)置 Date 對象的 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)前日期,然后通過 getWeekNumber() 函數(shù)計(jì)算當(dāng)前日期是一年中的第幾周。最后輸出結(jié)果,格式為 “xx年第xx周”。
注意,這個(gè)函數(shù)的實(shí)現(xiàn)是基于 ISO 8601 標(biāo)準(zhǔn)的,即一年的第一周從第一個(gè)星期四開始計(jì)算。如果你需要使用其他定義的周數(shù)計(jì)算方式,可以根據(jù)實(shí)際需求進(jìn)行修改。
總結(jié)
到此這篇關(guān)于如何用js獲取當(dāng)年周數(shù)列表以及當(dāng)前日期是第幾周的文章就介紹到這了,更多相關(guān)js獲取當(dāng)年周數(shù)列表內(nèi)容請搜索腳本之家以前的文章或繼續(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)前一周、一月對應(yīng)日期的實(shí)例
- js根據(jù)當(dāng)前日期獲取前一周或者后一周等日期
相關(guān)文章
javascript高級程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測方法)
javascript高級程序設(shè)計(jì)第二版第十二章事件要點(diǎn)總結(jié)(常用的跨瀏覽器檢測方法),需要的朋友可以參考下2012-08-08淺談layui 綁定form submit提交表單的注意事項(xiàng)
今天小編就為大家分享一篇淺談layui 綁定form submit提交表單的注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10JavaScript實(shí)現(xiàn)簡單計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06JavaScript實(shí)現(xiàn)計(jì)數(shù)器基礎(chǔ)方法
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)計(jì)數(shù)器的基礎(chǔ)方法2017-10-10
,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下精彩的Bootstrap案例分享 重點(diǎn)在注釋!(選項(xiàng)卡、柵格布局)
這篇文章主要為大家分享了一個(gè)精彩的Bootstrap案例,涉及到了選項(xiàng)卡、柵格布局,關(guān)鍵重點(diǎn)在注釋,感興趣的小伙伴們可以參考一下2016-07-07微信小程序開發(fā)之map地圖組件定位并手動(dòng)修改位置偏差
這篇文章主要介紹了微信小程序開發(fā)之map地圖組件,定位,并手動(dòng)修改位置偏差,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08JavaScript中檢測數(shù)據(jù)類型的四種方法
這篇文章主要給大家分享的是JavaScript中檢測數(shù)據(jù)類型的四種方法,有 typeof、instanceof、constructor、Object.prototype.toString.call(),下面文章詳細(xì)介紹內(nèi)容,需要的小伙伴可以參考一下2022-01-01JavaScript中5種調(diào)用函數(shù)的方法
這篇文章主要介紹了JavaScript中5種調(diào)用函數(shù)的方法,本文詳細(xì)的介紹了Javascript中各種函數(shù)調(diào)用的方法及其原理,對于理解JavaScript的函數(shù)有很大的幫助,需要的朋友可以參考下2015-03-03