nodejs中跟时间相关的函数有哪些?
封面图
•
2025-10-12
•
nodejs
305
0
0
0
在 Node.js 中,处理时间相关的功能主要依赖于 JavaScript 内置的 `Date` 对象和一些常用的模块。以下是一些与时间相关的常用函数和模块: --- ## 一、内置的 `Date` 对象 JavaScript 的 `Date` 对象提供了很多处理日期和时间的方法。 ### 常用方法: | 方法 | 描述 | |------|------| | `new Date()` | 创建一个当前时间的 `Date` 实例 | | `getDate()` | 获取月份中的第几天(1-31) | | `getDay()` | 获取星期几(0-6,0 是周日) | | `getMonth()` | 获取月份(0-11,0 是一月) | | `getFullYear()` | 获取年份 | | `getHours()` | 获取小时(0-23) | | `getMinutes()` | 获取分钟(0-59) | | `getSeconds()` | 获取秒数(0-59) | | `getMilliseconds()` | 获取毫秒数(0-999) | | `getTime()` | 获取自 1970 年 1 月 1 日以来的毫秒数(Unix 时间戳) | | `toISOString()` | 返回 ISO 格式的字符串(如 `"2025-04-05T08:30:00.000Z"`) | | `toString()` | 返回本地时间格式的字符串 | | `toUTCString()` | 返回 UTC 时间格式的字符串 | ### 示例: ```js const now = new Date(); console.log(now.getFullYear()); // 当前年份 console.log(now.getMonth() + 1); // 当前月份(注意:0-11) console.log(now.getDate()); // 当前日期 console.log(now.getHours()); // 当前小时 console.log(now.getMinutes()); // 当前分钟 console.log(now.getSeconds()); // 当前秒数 ``` --- ## 二、Node.js 中的 `date-fns` 或 `moment.js` 等第三方库(推荐) 虽然 `Date` 对象功能强大,但处理复杂的时间逻辑时比较繁琐。推荐使用以下库: ### 1. **date-fns**(轻量、现代、无依赖) - 官网:https://date-fns.org/ - 示例: ```js const { format, addDays, isToday } = require('date-fns'); console.log(format(new Date(), 'yyyy-MM-dd')); // 格式化日期 console.log(addDays(new Date(), 5)); // 5天后 console.log(isToday(new Date())); // 是否是今天 ``` ### 2. **moment.js**(老牌时间库,但已停止维护) - 官网:https://momentjs.com/ - 示例: ```js const moment = require('moment'); console.log(moment().format('YYYY-MM-DD')); // 格式化 console.log(moment().add(5, 'days').format('YYYY-MM-DD')); // 5天后 ``` ### 3. **Luxon**(现代、功能强大) - 官网:https://moment.github.io/luxon/ - 示例: ```js const { DateTime } = require('luxon'); console.log(DateTime.now().toISODate()); ``` --- ## 三、Node.js 原生模块中与时间相关的 API ### 1. `process.hrtime()`(高精度时间) 用于测量代码执行时间,精度到纳秒。 ```js const start = process.hrtime(); // 执行一些操作... const diff = process.hrtime(start); console.log(`耗时:${diff[0]} 秒 ${diff[1]/1e6} 毫秒`); ``` ### 2. `setTimeout()` / `setInterval()`(定时器) 用于延迟执行或周期性执行任务。 ```js setTimeout(() => { console.log('5秒后执行'); }, 5000); setInterval(() => { console.log('每秒执行一次'); }, 1000); ``` ### 3. `Date.now()`(获取当前时间戳) 返回当前时间的毫秒数(从 Unix 时间起点开始)。 ```js console.log(Date.now()); // 输出类似 1712345678901 ``` --- ## 四、Node.js 中的 `os` 模块(获取系统时间信息) 虽然不直接提供时间处理函数,但可以获取系统时间信息: ```js const os = require('os'); console.log(os.uptime()); // 系统运行时间(秒) ``` --- ## 五、Node.js 中的 `timers` 模块(高级定时器) ```js const timers = require('timers'); timers.setTimeout(() => { console.log('超时'); }, 1000); ``` --- ## 总结:Node.js 中与时间相关的函数/模块 | 类型 | 名称 | 说明 | |------|------|------| | 内置 | `Date` | 处理日期和时间的基本对象 | | 内置 | `Date.now()` | 获取当前时间戳 | | 内置 | `process.hrtime()` | 高精度时间测量 | | 内置 | `setTimeout`, `setInterval` | 定时器函数 | | 第三方 | `date-fns` | 轻量级、现代时间处理库 | | 第三方 | `moment.js` | 功能强大的时间处理库(已停更) | | 第三方 | `Luxon` | 现代、功能强大的时间处理库 | --- 如果你有具体的时间处理需求(比如格式化、加减时间、时区转换等),我可以帮你选择最合适的方案!
上一篇:
nodejs如何配置开发模式和生产模式的环境?
下一篇:
列出 nodejs 中的主要安全实现?
标题录入,一次不能超过6条
留言
评论