【学习 JavaScript】 JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JS 函数 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 JS 类 JavaScript 类 JavaScript 类继承 JavaScript 静态方法 JS HTML DOM DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JS 高级教程 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JS 浏览器BOM JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JS 库 JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype JS 实例 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JS 参考手册

JavaScript Date(日期)学习笔记

介绍

JavaScript 中的 Date 对象用于操作日期和时间。Date 对象是一个构造函数,可以通过关键字 new 来创建一个新的实例。有多种方法可以创建一个 Date 对象,例如:

javascriptCopy Code
var today = new Date(); var birthday = new Date('1990-08-12'); var epochTime = new Date(0);

其中,today 是当前的本地时间,birthday 是指定的日期时间(注意日期的格式),而 epochTime 是 Unix 时间戳为 0 时对应的时间。

常用方法

下面介绍一些常用的 Date 方法。

获取日期信息

javascriptCopy Code
var now = new Date(); var year = now.getFullYear(); // 年份,如 2023 var month = now.getMonth() + 1; // 月份,从 0 开始计数,加 1 后表示实际月份 var day = now.getDate(); // 日,从 1 开始计数 var weekday = now.getDay(); // 星期几,从 0 开始计数,0 表示星期日 var hour = now.getHours(); // 小时,0-23 var minute = now.getMinutes(); // 分钟,0-59 var second = now.getSeconds(); // 秒数,0-59 var millisecond = now.getMilliseconds(); // 毫秒数,0-999

设置日期信息

javascriptCopy Code
var now = new Date(); now.setFullYear(2024); // 设置年份为 2024 now.setMonth(5); // 设置月份为 6(从 0 开始计数) now.setDate(15); // 设置日期为 15 now.setHours(12); // 设置小时为 12 now.setMinutes(30); // 设置分钟为 30 now.setSeconds(45); // 设置秒数为 45 now.setMilliseconds(500); // 设置毫秒数为 500

格式化输出时间

javascriptCopy Code
var now = new Date(); var formatted = now.toLocaleString('zh-CN', { hour12: false }); // 输出格式为 2023/6/2 下午9:37:26

上面的 toLocaleString 可以指定输出日期格式和语言,这里使用的是中文格式。其中 { hour12: false } 参数用于禁用 12 小时制。

实例

下面举两个实例:

计算距离生日还有多少天

javascriptCopy Code
var today = new Date(); var birthday = new Date('1990-08-12'); birthday.setFullYear(today.getFullYear()); if (today > birthday) { birthday.setFullYear(today.getFullYear() + 1); } var diff = Math.ceil((birthday - today) / (1000 * 60 * 60 * 24)); console.log('距离生日还有 ' + diff + ' 天');

上面的代码将生日设为今年的生日,如果已经过了,则设为明年的生日。然后计算距离生日还有多少天,并输出。

计算两个日期之间相差的时间

javascriptCopy Code
var date1 = new Date('2023-06-01'); var date2 = new Date('2023-06-02'); var diff = Math.abs(date1 - date2); var minutes = Math.floor(diff / (1000 * 60)); console.log('两个日期之间相差 ' + minutes + ' 分钟');

上面的代码计算了两个日期之间相差多少分钟,并输出。注意使用了 Math.abs 方法来取绝对值,因为两个日期的先后顺序不确定。