Moment.js 是一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。对于前端开发者来说还是非常实用的,今天就整理一些 Moment.js 的常用用法,方便后期查阅:
先说一下基础用法:
当前时间的时间戳:
moment()
可以指定时间:
moment('20211011')
格式化:
moment('20211011').format("YYYY-MM-DD")
格式速查:
类型 | 令牌 | 输出 |
---|---|---|
月份 | 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 |
日期格式化
moment().format('MMMM Do YYYY, h:mm:ss a'); // 十月 11日 2021, 9:18:02 晚上 moment().format('dddd'); // 星期一 moment().format("MMM Do YY"); // 10月 11日 21 moment().format('YYYY [escaped] YYYY'); // 2021 escaped 2021 moment().format(); // 2021-10-11T21:18:02+08:00
相对时间
moment("20111031", "YYYYMMDD").fromNow(); // 10 年前 moment("20120620", "YYYYMMDD").fromNow(); // 9 年前 moment().startOf('day').fromNow(); // 21 小时前 moment().endOf('day').fromNow(); // 3 小时内 moment().startOf('hour').fromNow(); // 18 分钟前
日历时间
moment().subtract(10, 'days').calendar(); // 2021/10/01 moment().subtract(6, 'days').calendar(); // 上星期二21:18 moment().subtract(3, 'days').calendar(); // 上星期五21:18 moment().subtract(1, 'days').calendar(); // 昨天21:18 moment().calendar(); // 今天21:18 moment().add(1, 'days').calendar(); // 明天21:18 moment().add(3, 'days').calendar(); // 下星期四21:18 moment().add(10, 'days').calendar(); // 2021/10/21
多语言支持
moment.locale(); // zh-cn moment().format('LT'); // 21:18 moment().format('LTS'); // 21:18:02 moment().format('L'); // 2021/10/11 moment().format('l'); // 2021/10/11 moment().format('LL'); // 2021年10月11日 moment().format('ll'); // 2021年10月11日 moment().format('LLL'); // 2021年10月11日晚上9点18分 moment().format('lll'); // 2021年10月11日 21:18 moment().format('LLLL'); // 2021年10月11日星期一晚上9点18分 moment().format('llll'); // 2021年10月11日星期一 21:18
以上是官网给出的最最基础的示例,下面再分享一些我日常用到的用法:
某年最后一天
日期可以是 年月的格式 也可以是年月日的格式:
moment('20211011').endOf('year').format("YYYY-MM-DD") // 2021-12-31
某月最后一天
moment('20211011').endOf('month').format("YYYY-MM-DD") // 2021-10-31
前几天、前几月、前几年
当前时间:
moment().format('YYYY-MM-DD HH:mm:ss') // 2021-10-11 21:18:02
前1年:
moment().subtract(1, 'years').format('YYYY-MM-DD HH:mm:ss') // 2020-10-11 21:18:02
前1个月:
moment().subtract(1, 'months').format('YYYY-MM-DD HH:mm:ss') // 2021-09-11 21:18:02
前10天:
moment().subtract(10, 'days').format('YYYY-MM-DD HH:mm:ss') // 2021-10-01 21:18:02
未经允许不得转载:前端资源网 - w3h5 » Momentjs常用用法整理总汇