📜  MomentJS-操作日期和时间(1)

📅  最后修改于: 2023-12-03 15:03:00.254000             🧑  作者: Mango

MomentJS - 操作日期和时间

简介

MomentJS 是一个开源的 JavaScript 库,用于解析、验证、操作和格式化日期和时间。它拥有简单易用的 API,并且支持多语言。MomentJS 可以解析大多数日期字符串,并且可以处理本地时间和协调世界时 (UTC) 时间之间的转换。它还提供了便捷的方法来格式化日期和时间,比如“2019年12月31日 23:59:59”。

安装和使用

MomentJS 可以通过 npm 安装,也可以直接在 HTML 中引入。

通过 npm 安装
npm install moment --save
直接引入
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

在 JavaScript 中使用 MomentJS 时,可以通过以下方式引入:

const moment = require('moment'); // CommonJS
import moment from 'moment'; // ES6
解析日期和时间

MomentJS 可以解析各种日期和时间格式的字符串,比如:"2019-12-31 23:59:59"、"2019/12/31"、"2019年12月31日" 等。要解析一个日期字符串,可以使用 moment() 函数,并将字符串作为参数传入:

const dateStr = '2019年12月31日';
const date = moment(dateStr);
console.log(date); // 输出:Moment<2019-12-31T00:00:00+08:00>

可以看到,MomentJS 返回了一个 Moment 对象,其表示解析后的日期。注意,默认情况下,MomentJS 使用本地时间解析字符串。

格式化时间

MomentJS 提供了许多方法来格式化日期和时间。常用的格式化方法有 format()locale()

format()

format() 方法用于将 Moment 对象格式化成指定的字符串格式。以下是一些常见的格式化选项:

  • YYYY:4 位数的年份
  • YY:2 位数的年份
  • MM:月份(01~12)
  • M:月份(1~12)
  • DD:天数(01~31)
  • D:天数(1~31)
  • HH:小时(00~23)
  • H:小时(0~23)
  • hh:小时(01~12)
  • h:小时(1~12)
  • mm:分钟(00~59)
  • m:分钟(0~59)
  • ss:秒钟(00~59)
  • s:秒钟(0~59)
  • A:大写的 AM 或 PM
  • a:小写的 am 或 pm

以下是一些常见的格式化示例:

const dateStr = '2019-12-31 23:59:59';
const date = moment(dateStr);
console.log(date.format('YYYY-MM-DD HH:mm:ss A')); // 输出:2019-12-31 23:59:59 PM
locale()

locale() 方法用于设置 MomentJS 的语言环境。以下是一些常见的语言环境:

  • en:英语
  • zh-cn:简体中文
  • ja:日语

以下是一个例子:

moment.locale('zh-cn');
console.log(moment().format('LL')); // 输出:2019年12月31日
操作日期和时间

MomentJS 还支持各种操作日期和时间的方法,比如添加、减去、查询等。

add() 和 subtract()

add()subtract() 方法可以在日期上添加或减去指定的时间量,时间量可以是年、月、日、小时、分钟、秒等。以下是一个例子:

const dateStr = '2019-12-31 23:59:59';
const date = moment(dateStr);

// 加 1 天
console.log(date.add(1, 'day').format('YYYY-MM-DD HH:mm:ss')); // 输出:2020-01-01 23:59:59

// 减 2 小时
console.log(date.subtract(2, 'hours').format('YYYY-MM-DD HH:mm:ss')); // 输出:2020-01-01 21:59:59
diff()

diff() 方法用于计算两个 Moment 对象之间的时间差,可以指定时间差的单位,比如年、月、日、小时、分钟、秒等。以下是一个例子:

const dateStr1 = '2019-12-31 23:59:59';
const dateStr2 = '2020-01-01 00:00:01';
const date1 = moment(dateStr1);
const date2 = moment(dateStr2);

// 计算时间差,单位为秒
console.log(date2.diff(date1, 'seconds')); // 输出:2
总结

MomentJS 是一个非常好用的 JavaScript 库,它提供了许多简单易用的 API,可以轻松地解析、格式化和操作日期和时间。如果你需要处理日期和时间,那么 MomentJS 绝对是一个不错的选择。