📅  最后修改于: 2023-12-03 15:03:00.254000             🧑  作者: Mango
MomentJS 是一个开源的 JavaScript 库,用于解析、验证、操作和格式化日期和时间。它拥有简单易用的 API,并且支持多语言。MomentJS 可以解析大多数日期字符串,并且可以处理本地时间和协调世界时 (UTC) 时间之间的转换。它还提供了便捷的方法来格式化日期和时间,比如“2019年12月31日 23:59:59”。
MomentJS 可以通过 npm 安装,也可以直接在 HTML 中引入。
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()
方法用于将 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 或 PMa
:小写的 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()
方法用于设置 MomentJS 的语言环境。以下是一些常见的语言环境:
en
:英语zh-cn
:简体中文ja
:日语以下是一个例子:
moment.locale('zh-cn');
console.log(moment().format('LL')); // 输出:2019年12月31日
MomentJS 还支持各种操作日期和时间的方法,比如添加、减去、查询等。
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()
方法用于计算两个 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 绝对是一个不错的选择。