在 JavaScript 中要將日期格式化為 dd/mm/yyyy
。需要遵循以下步驟:
- 使用 getDate()、getMonth() 和 getFullYear() 方法獲取特定日期的日、月和年。
- 如果值小於 10,則在日期和月份數字前新增前導零,使得可以始終獲得一致的結果。
- 將結果新增到陣列並使用 / 分隔符連線它們。
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } function formatDate(date) { return [ padTo2Digits(date.getDate()), padTo2Digits(date.getMonth() + 1), date.getFullYear(), ].join('/'); } // 24/10/2021 (mm/dd/yyyy) console.log(formatDate(new Date())); // 24/07/2027 (mm/dd/yyyy) console.log(formatDate(new Date(2027, 6, 24)));
我們做的第一件事是建立一個 padTo2Digits
函式,如果月份或日期僅包含一個數字(小於 10),該函式負責新增前導零。
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } console.log(padTo2Digits(2)); // ?️ '02' console.log(padTo2Digits(6)); // ?️ '06' console.log(padTo2Digits(10)); // ?️ '10'
我們要確保結果始終一致,並且有 2 位數字表示月份和日期,因此我們使用了 padStart
方法。
我們傳遞給 padTo2Digits 函式的第一個引數是字串的總長度,因此如果它已經有 2 位數字,它將永遠不會填充一個值。
接下來,我們建立了一個函式,它接受一個日期並將其格式化為 dd/mm/yyyy。
該函式使用以下 3 種與日期相關的方法。
- Date.getFullYear 方法 - 返回一個四位數字,表示對應於日期的年份。
- Date.getMonth - 返回一個介於 0(一月)和 11(十二月)之間的整數,表示給定日期的月份。 是的,不幸的是 getMonth 方法不是從 1 開始的。
- Date.getDate - 返回一個介於 1 到 31 之間的整數,表示特定日期的月份日期。
getMonth 方法返回從 0 到 11 的從零開始的月份索引,這意味著一月是 0,十二月是 11。
因為 getMonth 方法是從零開始的,所以我們在它的返回值上加了 1。
我們將年、月和日放在一個陣列中,因此我們可以用連字元分隔符將它們連線起來。
console.log(['28', '06', '2027'].join('/'));
console.log(['16', '09', '2026'].join('/'));
這讓我們得到格式為 dd/mm/yyyy 的日期。