上一节介绍了如何使用 JavaScript 获取当前时间戳,本节再来介绍如何来获取当前日期(年、月、日)和时间(时、分、秒)。
JavaScript 获取年、月、日
在 JavaScript 中,我们可以使用 getFullYear()、getMonth() 和 getDate() 方法分别来获取当前时间的年、月、日,如下表所示。
| 方法 | 说明 |
|---|---|
| getFullYear() | 获取年份,取值为 4 位数字 |
| getMonth() | 获取月份,取值为 0(一月)到 11(十二月)之间的整数 |
| getDate() | 获取日数,取值为 1~31 之间的整数 |
提示: 如果想要设置年、月、日,对应的应该使用 setFullYear()、setMonth()、setDate() 方法来实现。
示例 1:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const d = new Date();
const myDay = d.getDate();
const myMonth = d.getMonth() + 1;
const myYear = d.getFullYear();
const result = "今天是" + myYear + "年" + myMonth + "月" + myDay + "日";
console.log(result);
</script>
</body>
</html>运行结果如下。
今天是2025年10月6日分析:
细心的小伙伴会发现,const myMonth = d.getMonth() + 1; 使用了 “+1”。其实,getMonth() 方法返回值是 0(一月)到 11(十二月)之间的整数,所以必须加上 1,这样月份才正确。
注意: 获取当前月的 “日数” ,不是使用 getDay(),而是使用 getDate()。
JavaScript 获取时、分、秒
在 JavaScript 中,我们可以使用 getHours()、getMinutes()、getSeconds() 方法分别获取当前的时、分、秒,如下表所示。
| 方法 | 说明 |
|---|---|
| getHours() | 获取小时数,取值为 0~23 之间的整数 |
| getMinutes() | 获取分钟数,取值为 0~59 之间的整数 |
| getSeconds() | 获取秒数,取值为 0~59 之间的整数 |
提示: 如果想要设置时、分、秒,对应地应该使用 setHours()、setMinutes()、setSeconds() 方法来实现。
示例 2:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const d = new Date();
const myHours = d.getHours();
const myMinutes = d.getMinutes();
const mySeconds = d.getSeconds();
const result = "当前时间是:" + myHours + ":" + myMinutes + ":" + mySeconds;
console.log(result);
</script>
</body>
</html>运行结果如下。
当前时间是:8:30:25分析:
在实际 UI 中,我们通常要求显示为 08:30:25 这样,此时可以使用字符串的 padStart() 方法来实现。
const myHours = d.getHours().padStart(2, "0");
const myMinutes = d.getMinutes().padStart(2, "0");
const mySeconds = d.getSeconds().padStart(2, "0");示例 3:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
const d = new Date();
const hours = d.getHours();
if (hours < 12) {
console.log("早上好!");
} else if (hours >= 12 && hours < 18) {
console.log("下午好!");
} else {
console.log("晚上好!");
}
</script>
</body>
</html>运行结果如下。
早上好!分析:
上面输出结果未必是 “早上好”,这个是根据当前时间来判断的。由于我现在测试的时间是早上 8:00,所以会输出 “早上好”。如果你是在 15:00 测试的,那么就会输出 “下午好”,以此类推。
