在 JavaScript 中獲取年度週數

Subodh Poudel 2023年10月12日
  1. 使用 getFullYear()getDay() 函式以及 new Date() 的物件來獲取當前日期的週數
  2. 使用 DateTime 資料結構及其來自 Luxon 的 weekNumber 屬性來獲取當年的當前週數
在 JavaScript 中獲取年度週數

我們將介紹一種在 JavaScript 中查詢當前週數的方法,建立 new Date() 建構函式的物件以及類似 getFullYear()getDay() 的函式。此方法將查詢一年中的總天數並查詢週數。我們將在此方法中使用 Math 物件的函式,如 floor()ceil()

本文還將介紹另一種使用 JavaScript 包裝器 Luxon 在 JavaScript 中獲取當前週數的方法。Luxon 是一個 JavaScript 日期和時間庫。我們將使用該庫中的 DateTime 資料結構和 weekNumber 屬性。我們還將在 DataTime 資料結構中使用 now 函式。

我們還將演示一種在 PHP 中使用 define() 函式宣告全域性變數的方法。這個方法是在 PHP 中宣告一個常量全域性變數的一種方式。以後不能更改變數的值。

使用 getFullYear()getDay() 函式以及 new Date() 的物件來獲取當前日期的週數

此方法使用 new Date() 建構函式及其物件以及 getFullYear()getDay() 等函式來獲取一年中的當前週數。Date 物件返回當前日期。getDay() 函式以整數值查詢星期幾。我們可以建立 Date() 建構函式的物件來獲取當前日期。該物件呼叫函式 getFullYear() 來獲取當前年份的開始。我們可以通過將天數差除以一天中的總毫秒數來找到從一天開始到當前時間的總天數。我們可以使用 Math 物件的 floor() 函式對值進行四捨五入以獲得整數。該方法最終計算出一年中的週數,將總天數除以七。

例如,建立一個 Date 物件 currentdate。建立另一個變數 oneJan,以儲存當年的第一天。為此,在變數上建立一個新的 Date 物件,並使用 currentdate 物件作為 Date() 建構函式的第一個引數呼叫 getFullYear() 函式。使用 01 作為第二個和第三個引數。從 currentdate 中減去變數 oneJan,然後除以 86400000。將操作包裹在 Math.floor() 函式中,並將其分配給變數 numberOfDays。使用 currentdate 物件呼叫 getDay() 函式,並向其新增變數 numberOfDays 和值 1。用 Math.ceil() 函式包裝這個操作並將結果儲存在 result 變數中。使用字串插值在控制檯中記錄變數以及 currentdate 變數。

下面的示例查詢當前日期,然後查詢當前年份的第一天。第二行的引數 01 代表當年的第一個月和第一天。從 currentdate 中減去 oneJan 給出以毫秒為單位的值,因此一天中的總毫秒數為 86400000 除以差值。getDay() 函式以整數形式返回以 0 開頭的日期,因此我們新增了 1。因此,計算當前週數。

示例程式碼:

currentdate = new Date();
var oneJan = new Date(currentdate.getFullYear(), 0, 1);
var numberOfDays = Math.floor((currentdate - oneJan) / (24 * 60 * 60 * 1000));
var result = Math.ceil((currentdate.getDay() + 1 + numberOfDays) / 7);
console.log(
    `The week number of the current date (${currentdate}) is ${result}.`);

輸出:

The week number of the current date (Tue May 25 2021 16:55:53 GMT+0545 (Nepal Time)) is 21.

使用 DateTime 資料結構及其來自 Luxon 的 weekNumber 屬性來獲取當年的當前週數

我們可以使用 Luxon 庫通過 DateTime 資料結構和 weeknumber 屬性獲取一年中的當前週數。DateTime 由時間戳、時區和配置屬性組成。與 now 函式一起使用的 DateTime 將返回系統時區中當前時刻的日期和時間。weekNumber 屬性訪問當前年份的週數。我們可以使用 toISO() 函式將 DateTime 轉換為 ISO 格式。

從第一行的 luxon/src/datetime.js 匯入 DateTime 物件。不要忘記下載 Luxon 原始碼。將原始碼儲存在 JavaScript 檔案中,並確保在 HTML 部分中使用 script 標籤包含該檔案。使用 DateTime 物件呼叫 now() 函式,然後呼叫 weekNumber 屬性。將其分配給變數日期。然後,在控制檯中記錄變數 date。請查閱 Luxon 文件 以瞭解有關 DateTime 物件和屬性的更多資訊。

程式碼示例:

import DateTime from 'luxon/src/datetime.js'
const date = DateTime.now().weekNumber
console.log(`The current week number is ${date}`)

輸出:

The current week number is 21
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - JavaScript DateTime