JavaScript Date(日期)对象

JavaScript Date对象完全指南

JavaScript Date对象完全指南

编程小白也能轻松掌握日期和时间操作

当前时间: 正在加载…
Date对象是什么?

Date对象是JavaScript中处理日期和时间的内置对象。

就像现实中的日历和时钟一样,Date对象可以表示任何时间点(年月日时分秒)。

主要功能:

  • 获取当前日期和时间
  • 创建特定的日期
  • 计算日期差
  • 格式化日期为字符串
  • 日期比较
💡 提示:JavaScript中的日期是基于UNIX时间戳的,即自1970年1月1日午夜(UTC)以来经过的毫秒数
创建Date对象

1. 获取当前日期和时间

let now = new Date();
console.log(now); // 输出当前日期和时间

2. 创建特定日期

传入年月日(时间可选):

// 2023年10月1日
let nationalDay = new Date(2023, 9, 1);

// 注意:月份是从0开始的,0=一月,11=十二月

3. 使用日期字符串

let christmas = new Date(“2023-12-25”);
let newYear = new Date(“January 1, 2024”);
️ 注意:不同浏览器对日期字符串的解析可能不同,建议使用数字方式创建日期
获取日期的各个部分

Date对象提供多种方法获取日期时间各部分:

年份相关

let date = new Date();
let year = date.getFullYear(); // 2023
let month = date.getMonth(); // 0-11 (0=一月)
let day = date.getDate(); // 1-31

时间相关

let hours = date.getHours(); // 0-23
let minutes = date.getMinutes();
let seconds = date.getSeconds();
let milliseconds = date.getMilliseconds();

星期几

let dayOfWeek = date.getDay(); // 0-6 (0=星期日, 1=星期一)

时间戳

let timestamp = date.getTime();
// 返回自1970年1月1日 00:00:00 UTC以来的毫秒数
设置/修改日期

Date对象也提供设置日期时间的方法:

设置日期各部分

let date = new Date();

date.setFullYear(2024);
date.setMonth(11); // 设置为12月 (0-11)
date.setDate(31); // 设置为31号

date.setHours(12); // 设置为中午12点
date.setMinutes(30);
date.setSeconds(0);

日期计算

通过获取和设置组合实现日期计算:

// 计算10天后的日期
let date = new Date();
date.setDate(date.getDate() + 10);
💡 小技巧:JavaScript会自动处理日期溢出(如设置32号会自动变为下个月1号)
格式化日期

内置方法提供基本格式化:

常用格式化方法

let date = new Date();

date.toString();
// “Thu Oct 05 2023 14:30:00 GMT+0800”

date.toDateString(); // “Thu Oct 05 2023”
date.toTimeString(); // “14:30:00 GMT+0800”
date.toLocaleDateString(); // “2023/10/5”
date.toLocaleTimeString(); // “下午2:30:00”
date.toISOString(); // “2023-10-05T06:30:00.000Z”

自定义格式化

通常需要自己构建格式:

function formatDate(date) {
  return `${date.getFullYear()}-${
    String(date.getMonth() + 1).padStart(2, ‘0’)}-${
    String(date.getDate()).padStart(2, ‘0’)}`;
}

// 返回 “2023-10-05”
注意事项与最佳实践

1. 时区问题

JavaScript日期运行在用户的浏览器中,使用用户的本地时区。

// 获取UTC时间
let utcHours = date.getUTCHours();

// 设置时区需要额外处理

2. 月份从0开始

一月是0,十二月是11

3. 日期比较

直接比较Date对象:

let date1 = new Date(2023, 9, 1);
let date2 = new Date(2023, 9, 2);

if (date1 < date2) {
  console.log(“date1在date2之前”);
}
️ 重要:处理复杂日期逻辑时,建议使用专门的日期库(如date-fns、moment.js)

动手实验:日期操作练习

计算结果:

等待操作…

JavaScript Date对象知识汇总 © 2023 | 为编程新手设计

提示:在实际项目中考虑使用现代日期库如date-fns或Day.js处理复杂日期操作

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部