
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常用用法整理总汇
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/228530.html