日期处理库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库中的一部分常用方法,了解这些方法可以帮助更方便地进行日期处理。

你可能感兴趣的:(JavaScript,javascript,前端,vue.js,开发语言,node.js)