在 JavaScript 中将日期格式化为 YYYY-MM-DD
Format a Date as YYYY-MM-DD in JavaScript
要将日期格式化为 yyyy-mm-dd:
- 使用
getFullYear()
,getMonth()
和getDate()
方法获取日期的年月日。 - 如果值小于 ,则在日和月数字前添加前导零
10
。 - 将结果添加到数组并使用连字符分隔符将它们连接起来。
索引.js
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } function formatDate(date) { return [ date.getFullYear(), padTo2Digits(date.getMonth() + 1), padTo2Digits(date.getDate()), ].join('-'); } // 👇️ 2022-01-19 (yyyy-mm-dd) console.log(formatDate(new Date())); // 👇️️ 2025-05-09 (yyyy-mm-dd) console.log(formatDate(new Date(2025, 4, 9)));
我们做的第一件事是创建一个padTo2Digits
函数,如果月份或日期仅包含一位数字(小于 10),该函数将负责添加前导零。
索引.js
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } console.log(padTo2Digits(5)); // 👉️ '05' console.log(padTo2Digits(9)); // 👉️ '09' console.log(padTo2Digits(10)); // 👉️ '10'
我们要确保结果始终一致并且月份和日期为 2 位数字,因此我们使用了
padStart
方法。
我们传递给
padTo2Digits
函数的第一个参数是字符串的总长度,所以如果日期或月份已经有 2 位数字,它就不会填充它们。接下来,我们创建了一个函数,它接受一个日期并将其格式化为yyyy-mm-dd
.
该函数使用以下 3 个Date
相关方法。
-
Date.getFullYear
方法 – 返回代表与日期对应的年份的四位数字。 -
Date.getMonth
0
– 返回一个介于(January) 和(December)之间的整数11
,代表给定日期的月份。是的,不幸的是该getMonth
方法已关闭1
。 -
Date.getDate
1
– 返回一个介于和之间的整数,31
表示特定日期的月中日期。
该
getMonth
方法返回从 0 到 11 的从零开始的月份索引,表示一月是0
,十二月是11
。因为该getMonth
方法是从零开始的,所以我们将 1 添加到它的返回值。
最后一步是将对方法的调用放在一个数组中,这样我们就可以用连字符分隔符连接它们。这里有些例子。
索引.js
console.log(['2025', '05', '24'].join('-')); // 👉️ '2025-05-24' console.log(['2025', '09', '13'].join('-')); // 👉️ '2025-09-13'
这为我们提供了日期,格式为yyyy-mm-dd
. 这是完整的例子。
索引.js
function padTo2Digits(num) { return num.toString().padStart(2, '0'); } function formatDate(date = new Date()) { return [ date.getFullYear(), padTo2Digits(date.getMonth() + 1), padTo2Digits(date.getDate()), ].join('-'); } // 👇️ 2022-01-19 (yyyy-mm-dd) console.log(formatDate()); // 👇️️ 2025-05-09 (yyyy-mm-dd) console.log(formatDate(new Date(2025, 4, 9)));