Date.getDay() 在 JavaScript 中返回错误的日期
使用 getDate()
方法而不是 getDay()
来获取一个月中某天的正确值,例如 date.getDate()
。
getDate
方法返回一个介于 1 和 31 之间的数字,表示给定日期是一个月中的第几天。
const date = new Date('2022-04-24');
console.log(date); // 👉️ Sun Apr 24 2022
const dayOfMonth = date.getDate();
console.log(dayOfMonth); // 👉️ 24
我们使用 Date()
构造函数创建了一个日期,用于存储 2022 年 4 月 24 日的值。
getDate()
方法返回存储在特定 Date 对象中的月份中的第几天。
该方法经常与 getDay() 混淆。
getDay
方法返回一个介于 0 和 6 之间的数字,它对应于给定日期的星期几。
例如,0 是星期日,1 是星期一,2 是星期二,等等。
const date = new Date('2022-04-24');
console.log(date); // 👉️ Sun Apr 24 2022
// ❌ getDay = zero-based day of week
const dayOfWeek = date.getDay();
console.log(dayOfWeek); // 👉️ 0
另一个令人困惑的与日期相关的方法是 getMonth()
。
该方法为给定日期的月份返回一个从零开始的数字,其中 0 是一月,1 是二月,2 是三月,等等。
下面是一个将日期格式化为 YYYY-MM-DD
的示例。
function padTo2Digits(num) {
return num.toString().padStart(2, '0');
}
function formatDate(date) {
return [
date.getFullYear(),
padTo2Digits(date.getMonth() + 1),
padTo2Digits(date.getDate()),
].join('-');
}
const date = new Date('2022-04-24');
// 👇️ 2022-04-24 (yyyy-mm-dd)
console.log(formatDate(date));
// 👇️️ 2025-05-09 (yyyy-mm-dd)
console.log(formatDate(new Date(2025, 4, 9)));
我们做的第一件事是创建一个 padTo2Digits
函数,如果月份或日期仅包含一位数字(小于 10),它将负责添加前导零。
function padTo2Digits(num) {
return num.toString().padStart(2, '0');
}
console.log(padTo2Digits(3)); // 👉️ '03'
console.log(padTo2Digits(6)); // 👉️ '06'
console.log(padTo2Digits(10)); // 👉️ '10'
我们要确保结果始终一致并且月份和日期为 2 位数字,因此我们使用了 padStart
方法。
我们传递给
padTo2Digits
函数的第一个参数是字符串的总长度,因此如果日期或月份已经有 2 位数字,它就不会填充它们。
接下来,我们创建了一个接受日期并将其格式化为 yyyy-mm-dd 的函数。
该函数使用以下 3 个与日期相关的方法。
- Date.getFullYear 方法 - 返回代表与日期对应的年份的四位数字。
- Date.getMonth - 返回一个介于 0(一月)和 11(十二月)之间的整数,代表给定日期的月份。 是的,不幸的是,getMonth 方法关闭了 1。
- Date.getDate - 返回一个介于 1 和 31 之间的整数,表示特定日期的月份中的第几天。
getMonth
方法返回一个从零开始的月份索引,从 0 到 11,这意味着一月是 0,十二月是 11。
因为 getMonth
方法是从零开始的,所以我们将 1 添加到它的返回值。
最后一步是将对方法的调用放在一个数组中,这样我们就可以用连字符分隔符连接它们。 这里有些例子。
console.log(['2022', '04', '24'].join('-')); // 👉️ '2022-04-24'
console.log(['2024', '09', '15'].join('-')); // 👉️ '2024-09-15'
我们在示例中使用了连字符分隔符,但是,我们可以使用正斜杠 /
、重新排序值或进行任何其他更改。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法