日期处理库moment的基本使用

一、介绍与安装

1.介绍

moment是JavaScript的一个日期时间处理库,它具有简单、强大和易于使用的特点,可以方便地进行日期和时间的格式化、解析等操作。

2.安装

可以通过npm来安装:npm install moment

3.引入

在node项目中引入

const moment = require("moment");

也可以通过import的方式引入

import moment from "moment";

但是需要在package.json文件中加上"type": "module",因为node默认是CommonJS模块化规范。

这里再扩展一下CommonJS模块范规范和Module模块化规范。

CommonJS模块化规范
Node.jsCommonJS规范的主要实践者。Node应用由模块组成,采用CommonJS模块规范。每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

CommonJS使用module.exportsexports导出,使用require导入

Module模块化规范
ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,旨在成为浏览器和服务器通用的模块解决方案。其模块功能主要由两个命令构成:exportimportexport命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

ES Module采用exportexport default导出,使用import关键字导入。

详细可看博客js模块化(ESModule与CommonJS)

在常规的项目中我们往往使用import的方式导入moment模块。

二、moment的使用

1.获取当前时间

可以使用moment()函数创建一个包含当前时间的moment对象,例如:

const now = moment();  // 输出的结果是一个moment对象

可以使用后面所讲的format()方法实现输出任意格式的时间。

2.格式化时间

可以使用format()方法将日期转换为特定格式的字符串,例如:

const nowTime1 = moment().format("YYYY年MM月DD日 HH:mm:ss");
const nowTime2 = moment().format("YYYY-MM-DD HH:mm:ss");
const nowTime3 = moment().format("YYYY/MM/DD/HH/mm/ss");
console.log(nowTime1);  // 2023年06月08日 21:10:31
console.log(nowTime2);  // 2023-06-08 21:10:31
console.log(nowTime3);  // 2023/06/08/21/10/31

在这个例子中,首先用moment()函数创建一个moment对象获取当前时间,然后使用format()方法将该对象转换成三种不同的格式字符串。

另外moment()也可以接收时间戳、标准日期字符串、Date对象为参数。

// 传入时间戳
const time1 = moment(1686230760332);
console.log(time1.format("YYYY-MM-DD HH:mm:ss")); // 2023-06-08 21:26:00
// 传入标准日期字符串
const time2 = moment("2023-06-08 21:27:00");
console.log(time2.format("YYYY-MM-DD HH:mm:ss"));  // 2023-06-08 21:27:00
// 传入Date对象
const time3 = moment(new Date());
console.log(time3.format("YYYY-MM-DD HH:mm:ss"));  // 2023-06-08 21:28:51

3.获取日期/时间信息

const nowTime = moment()

console.log(nowTime.year());  // 2023
console.log(nowTime.month()); // 5 month+1 才表示当前月份
console.log(nowTime.date());  // 8
console.log(nowTime.hour());  // 21
console.log(nowTime.minute());  // 18
console.log(nowTime.second());  // 24

这和new Date()类似。

4.操作日期/时间

const date = moment("2023-06-08");
console.log(date.add(1, "days").format("YYYY-MM-DD")); // 输出"2023-06-09"
console.log(date.subtract(2, "months").format("YYYY-MM-DD")); // 输出"2023-04-09"

在这个例子中,首先创建一个moment对象,表示初始日期。然后分别使用add()subtract()方法对该日期进行加减操作。

此方法在项目中常用,可以省去计算时间戳的步骤。

5.比较日期

const date1 = moment("2023-06-08");
const date2 = moment("2023-06-09");

console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2)); // false
// 是否同年同月
console.log(date1.isSame(date2, "month")); // true
// 是否同年同月同日
console.log(date1.isSame(date2, "day")); // false

这些只是moment.js库中的一部分常用方法,了解这些方法可以帮助更方便地进行日期处理。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Moment.js是一个JavaScript日期处理,它可以帮助您轻松处理日期和时间。下面是使用Moment.js的一些示例: 1. 安装Moment.js 您可以在Moment.js官方网站上下载Moment.js,或者使用npm进行安装: ``` npm install moment ``` 2. 导入Moment.js 在您的JavaScript文件中导入Moment.js: ``` import moment from 'moment'; ``` 3. 创建日期 使用moment()函数创建一个当前日期Moment对象: ``` const now = moment(); ``` 您还可以使用moment()函数传递一个日期字符串或JavaScript Date对象来创建Moment对象: ``` const dateStr = '2022-01-01'; const date = moment(dateStr); const jsDate = new Date(); const momentDate = moment(jsDate); ``` 4. 格式化日期 使用format()函数将Moment对象格式化为字符串: ``` const nowStr = now.format('YYYY-MM-DD HH:mm:ss'); ``` 您可以使用Moment.js提供的各种格式选项来自定义日期格式。 5. 操作日期 使用add()和subtract()函数在Moment对象上添加或减去一定的时间: ``` const tomorrow = now.clone().add(1, 'day'); const lastWeek = now.clone().subtract(1, 'week'); ``` 6. 比较日期 使用isBefore()、isSame()和isAfter()函数比较两个Moment对象: ``` const date1 = moment('2022-01-01'); const date2 = moment('2022-01-02'); const isBefore = date1.isBefore(date2); // true const isSame = date1.isSame(date2, 'day'); // false const isAfter = date1.isAfter(date2); // false ``` 这些是Moment.js的一些基本用法示例。Moment.js还提供了许多其他功能,如本地化、时区处理和持续时间计算。您可以查看Moment.js官方文档以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值