moment.js是一个JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。
目录
1.isBefore(): 一个 moment 是否在另一个 moment 之前
2.isSame():一个 moment 是否与另一个 moment 相同
3.isAfter():一个 moment 是否在另一个 moment 之后
4.isSameOrBefore():一个 moment 是否在另一个 moment 之前或与之相同
5.isSameOrAfter(): 一个 moment 是否在另一个 moment 之后或与之相同
6.isBetween(): 一个 moment 是否在其他两个 moment 之间
安装
npm install moment --save # npm
yarn add moment # Yarn
Install-Package Moment.js # NuGet
spm install moment --save # spm
meteor add momentjs:moment # meteor
挂载
// 全局引入 main.js
import moment from 'moment';
Vue.prototype.$moment = moment;
// 单个文件中引入
import moment from 'moment';
显示
1.获取当前日期(时间)
const now = moment(); // 等同于const now = moment(new Date());
输出:"2021-03-29T09:07:21.485Z"
解析
1.format():将日期(时间)转换为指定格式(常用)
// 语法:moment().format();
// moment().format(String);
moment().format('YYYY/MM/DD');
输出:2021/03/29
moment().format('YYYY-MM-DD hh:mm:ss');
输入:2021-03-29 17:53:16
令牌 | 输出 | |
---|---|---|
月份 | M | 1 2 ... 11 12 |
Mo | 1st 2nd ... 11th 12th | |
MM | 01 02 ... 11 12 | |
MMM | Jan Feb ... Nov Dec | |
MMMM | January February ... November December | |
季度 | Q | 1 2 3 4 |
Qo | 1st 2nd 3rd 4th | |
月份的日期 | D | 1 2 ... 30 31 |
Do | 1st 2nd ... 30th 31st | |
DD | 01 02 ... 30 31 | |
年份的日期 | DDD | 1 2 ... 364 365 |
DDDo | 1st 2nd ... 364th 365th | |
DDDD | 001 002 ... 364 365 | |
星期几 | d | 0 1 ... 5 6 |
do | 0th 1st ... 5th 6th | |
dd | Su Mo ... Fr Sa | |
ddd | Sun Mon ... Fri Sat | |
dddd | Sunday Monday ... Friday Saturday | |
星期几(语言环境) | e | 0 1 ... 5 6 |
星期几(ISO) | E | 1 2 ... 6 7 |
年份的星期 | w | 1 2 ... 52 53 |
wo | 1st 2nd ... 52nd 53rd | |
ww | 01 02 ... 52 53 | |
年份的星期(ISO) | W | 1 2 ... 52 53 |
Wo | 1st 2nd ... 52nd 53rd | |
WW | 01 02 ... 52 53 | |
年份 | YY | 70 71 ... 29 30 |
YYYY | 1970 1971 ... 2029 2030 | |
Y | 1970 1971 ... 9999 +10000 +10001 注意:对于 9999 年以后的日期,这符合 ISO 8601 标准。 | |
周年 | gg | 70 71 ... 29 30 |
gggg | 1970 1971 ... 2029 2030 | |
周年(ISO) | GG | 70 71 ... 29 30 |
GGGG | 1970 1971 ... 2029 2030 | |
子午线 | A | AM PM |
a | am pm | |
小时 | H | 0 1 ... 22 23 |
HH | 00 01 ... 22 23 | |
h | 1 2 ... 11 12 | |
hh | 01 02 ... 11 12 | |
k | 1 2 ... 23 24 | |
kk | 01 02 ... 23 24 | |
分钟 | m | 0 1 ... 58 59 |
mm | 00 01 ... 58 59 | |
秒钟 | s | 0 1 ... 58 59 |
ss | 00 01 ... 58 59 | |
小数秒钟 | S | 0 1 ... 8 9 |
SS | 00 01 ... 98 99 | |
SSS | 000 001 ... 998 999 | |
SSSS ... SSSSSSSSS | 000[0..] 001[0..] ... 998[0..] 999[0..] | |
时区 | z or zz | EST CST ... MST PST 注意:从 1.6.0 版本开始,z/zz 格式的令牌已从普通的 moment 对象中弃用。 但是,如果将特定时区与 moment-timezone 插件一起使用,它们会起作用。 |
Z | -07:00 -06:00 ... +06:00 +07:00 | |
ZZ | -0700 -0600 ... +0600 +0700 | |
Unix 时间戳 | X | 1360013296 |
Unix 毫秒时间戳 | x | 1360013296123 |
2.fromNow():时间间隔(相对时间)
// 时间间隔或相对时间
// moment().fromNow();
// moment().fromNow(Boolean); // Boolean为true时则可以取到不带后缀的值
moment('2020-5-20').fromNow(); // 10 months ago
moment('2020-5-20').fromNow(true); // 10 months
3.toNow():时间间隔(相对时间)
// 与fromNow相反
// moment().toNow();
// moment().toNow(Boolean);
moment('2020-5-20').toNow(); // in 10 months
moment('2020-5-20').toNow(true); // 10 months
操作
1.add():增加时间
// moment().add(Number, String);
在原有的时间上增加7天
moment().add(7, 'days');
moment().add(7, 'd'); // 简写
键 | 快捷键 |
---|---|
years | y |
quarters | Q |
months | M |
weeks | w |
days | d |
hours | h |
minutes | m |
seconds | s |
milliseconds | ms |
2.subtract():减去时间
// moment().subtract(Number, String);
在原有的时间上减去7天
moment().subtract(7, 'days');
moment().subtract(7, 'd'); // 简写
3.startOf():设置为时间单位的开头
// moment().startOf(String);
moment().startOf('year'); // 设置为今年一月1日上午 12:00
moment().startOf('month'); // 设置为本月1日上午 12:00
moment().startOf('quarter'); // 设置为当前季度的开始,即每月的第一天上午 12:00
moment().startOf('week'); // 设置为本周的第一天上午 12:00
moment().startOf('isoWeek'); // 根据 ISO 8601 设置为本周的第一天上午 12:00
moment().startOf('day'); // 设置为今天上午 12:00
moment().startOf('date'); // 设置为今天上午 12:00
moment().startOf('hour'); // 设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒
moment().startOf('minute'); // 设置为当前时间,但是 0 秒钟、0 毫秒
moment().startOf('second'); // 与 moment().milliseconds(0); 相同
4.endOf():设置为时间单位的末尾(同上)
校验
1.isBefore(): 一个 moment 是否在另一个 moment 之前
moment('2010-10-20').isBefore('2010-12-31'); // false
moment('2010-10-20').isBefore('2011-01-01'); // true
2.isSame():一个 moment 是否与另一个 moment 相同
moment('2010-10-20').isSame('2009-12-31'); // false
moment('2010-10-20').isSame('2010-10-20'); // true
3.isAfter():一个 moment 是否在另一个 moment 之后
moment('2010-10-20').isAfter('2010-10-19'); // true
4.isSameOrBefore():一个 moment 是否在另一个 moment 之前或与之相同
moment('2010-10-20').isSameOrBefore('2010-10-21'); // true
moment('2010-10-20').isSameOrBefore('2010-10-20'); // true
moment('2010-10-20').isSameOrBefore('2010-10-19'); // false
5.isSameOrAfter(): 一个 moment 是否在另一个 moment 之后或与之相同
moment('2010-10-20').isSameOrAfter('2010-10-19'); // true
moment('2010-10-20').isSameOrAfter('2010-10-20'); // true
moment('2010-10-20').isSameOrAfter('2010-10-21'); // false
6.isBetween(): 一个 moment 是否在其他两个 moment 之间
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
moment('2010-10-20').isBetween('2010-10-19', undefined); // true, 因为 moment(undefined) 等效于 moment()
7.isLeapYear(): 是否是闰年
moment([2000]).isLeapYear() // true
moment([2001]).isLeapYear() // false
moment([2100]).isLeapYear() // false