Moment.js 是一个简单易用的轻量级 JavaScript 日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和 NodeJS 两种环境中运行。此类库能够将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。另外,它也支持多种语言,你可以任意新增一种新的语言包。
格式化时间 format:
moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601,无小数秒钟) moment().format('YYYY-MM-DD HH:mm:ss'); // "2014-09-08 08:17:12 moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm" moment().format("ddd, hA"); // "Sun, 3PM"
令牌 | 输出 | |
---|---|---|
月份 | 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 |
calendar()
日历时间显示相对于给定的 referenceTime 的时间(默认为现在),但与 moment#fromNow 略有不同。
moment().calendar(); moment().calendar(referenceTime); moment().calendar(referenceTime, formats); // 从 2.10.5 开始
// 相对于当前时间的格式化显示字符串 moment(timestamp).calendar(null, { sameDay: 'HH:mm', nextDay: '[明天]HH:mm', nextWeek: 'MM月DD日 HH:mm', lastDay: '[昨天]HH:mm', lastWeek: 'MM月DD日 HH:mm', sameElse: (now) => { if (moment().year() === new Date(timestamp).getFullYear()) { return 'MM月DD日 HH:mm'; } else { return 'YYYY年MM月DD日 HH:mm'; } }, });
获取当前时间往前的时间:
moment().format("YYYY-MM-DD HH:mm:ss"); //当前时间 moment().subtract(10, "days").format("YYYY-MM-DD"); //当前时间的前10天时间 moment().subtract(1, "years").format("YYYY-MM-DD"); //当前时间的前1年时间 moment().subtract(3, "months").format("YYYY-MM-DD"); //当前时间的前3个月时间 moment().subtract(1, "weeks").format("YYYY-MM-DD"); //当前时间的前一个星期时间
获取开始时间 Start of Time :moment().startOf(String)
// 获取今天0时0分0秒 moment().startOf('day') // 获取本周第一天(周日)0时0分0秒 moment().startOf('week') // 获取本周周一0时0分0秒 moment().startOf('isoWeek') // 获取当前月第一天0时0分0秒 moment().startOf('month')
获取结束时间 End of Time :moment().endOf(String)
// 获取今天23时59分59秒 moment().endOf('day') // 获取本周最后一天(周六)23时59分59秒 moment().endOf('week') // 获取本周周日23时59分59秒 moment().endOf('isoWeek') // 获取当前月最后一天23时59分59秒 moment().endOf('month')
获取当前月的总天数
moment().daysInMonth()
随缘而来,乘风而去,山高海阔,自有我风采!
所属分类:
JavaScript