moment().format();
moment().format(String);
这是最强大的显示选项。 它接受一串标记并将它们替换为相应的值。
moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601, no fractional seconds)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"
moment().format("ddd, hA"); // "Sun, 3PM"
moment().format("[Today is] dddd"); // "Today is Sunday"
moment('gibberish').format('YYYY MM DD'); // "Invalid date"
令牌 | 输出 | |
---|---|---|
月 | M | 1 2 ... 11 12 |
Mo | 第 1 第 2 ... 11 号 12 号 | |
MM | 01 02 ... 11 12 | |
MMM | 一月二月... 十一月十二月 | |
MMMM | 一月二月 ... 十一月十二月 | |
季 | Q | 1 2 3 4 |
Qo | 第 1 第 2 第 3 第 4 | |
月中日 | D | 1 2 ... 30 31 |
Do | 第 1 第 2 ... 30 日 31 日 | |
DD | 01 02 ... 30 31 | |
一年中的某一天 | DDD | 1 2 ... 364 365 |
DDDo | 第 1 第 2 ... 第 364 365 | |
DDDD | 001 002 ... 364 365 | |
星期几 | d | 0 1 ... 5 6 |
do | 第 0 第 1 ... 5 号 6 号 | |
dd | Su Mo ... Fr Sa | |
DDD | Sun Mon ... 周五周六 | |
dddd | 星期天星期一 ... 星期五星期六 | |
星期几(语言环境) | e | 0 1 ... 5 6 |
星期几 (ISO) | E | 1 2 ... 6 7 |
一年中的一周 | w | 1 2 ... 52 53 |
wo | 第 1 第 2 ... 52 号 53 号 | |
ww | 01 02 ... 52 53 | |
一年中的一周 (ISO) | W | 1 2 ... 52 53 |
Wo | 第 1 第 2 ... 52 号 53 号 | |
WW | 01 02 ... 52 53 | |
年 | YY | 70 71 ... 29 30 |
YYYY | 1970 1971 ... 2029 2030 | |
YYYYYY | -001970 -001971 ... +001907 +001971 注意: 扩大年限(涵盖自 1970 年 1 月 1 日起向前或向后约 273,790 年的完整时间值范围) |
|
Y | 1970 1971 ... 9999 +10000 +10001 注意: 对于 9999 年以后的日期,这符合 ISO 8601 标准 |
|
纪元年 | y | 1 2 ... 2020 ... |
时代 | N、NN、NNN | 公元前公元 注意: 缩写年号 |
NNNN | 在基督之前,Anno Domini 注意: 全年号 |
|
NNNNN | 公元前公元 注意: 狭义年号 |
|
周年 | gg | 70 71 ... 29 30 |
gggg | 1970 1971 ... 2029 2030 | |
周年 (ISO) | GG | 70 71 ... 29 30 |
GGGG | 1970 1971 ... 2029 2030 | |
上午/下午 | A | 上午下午 |
a | 上午下午 | |
小时 | H | 0 1 ... 22 23 |
哈 | 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 ... SSSSSSSSSS | 000[0..] 001[0..] ... 998[0..] 999[0..] | |
时区 | z 或 zz |
美国东部标准时间... 太平洋标准时间 注意: 作为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.0.0 中添加了 X
。
在 2.1.0 中添加了 e E gg gggg GG GGGG
。
在 2.8.4 中添加了 x
。
在 2.10.5 中添加了 SSSS
至 SSSSSSSSS
。 它们显示 3 位有效数字,其余数字用零填充。
在 2.13.0 中添加了 k
和 kk
。
由于首选格式因区域设置而异,因此有一些标记可用于根据区域设置格式化 moment。
相同格式有大写和小写变体。 小写版本旨在成为其大写版本的缩写版本。
时间 | LT | 晚上 8:30 |
以秒为单位的时间 | LTS | 8:30:下午 25 点 |
月份数字,日期,年份 | L | 09/04/1986 |
l | 9/4/1986 | |
月份、月日、年 | LL | 1986 年 9 月 4 日 |
ll | 1986 年 9 月 4 日 | |
月份、月日、年、时间 | LLL | 1986 年 9 月 4 日 8:下午 30 点 |
lll | 1986 年 9 月 4 日 8:下午 30 点 | |
月份名称、月份日期、星期几、年份、时间 | LLLL | 1986 年 9 月 4 日星期四 8:下午 30 点 |
llll | 1986 年 9 月 4 日星期四 8:下午 30 点 |
l ll lll llll
在 2.0.0 中可用。
在 2.8.4 中添加了 LTS
。
要转义格式字符串中的字符,可以将字符括在方括号中。
moment().format('[today] dddd'); // 'today Sunday'
Note: 虽然这些日期格式与 LDML 日期格式非常相似,但在月中日、年中日和星期中存在一些细微差别。
有关跨不同语言环境的几个不同日期格式标记的细分,请参阅 这个日期格式标记图表。
要将 Moment.js 格式化速度与其他库进行比较,请查看 与其他库的比较。
如果你更喜欢使用 strftime 而不是类似 LDML 的解析标记,则可以使用 Ben Oakes 的插件。 benjaminoakes/moment-strftime.
调用没有格式的 moment#format
将默认为 moment.defaultFormat
。 开箱即用,moment.defaultFormat
是 ISO8601 格式 YYYY-MM-DDTHH:mm:ssZ
。
从版本 2.13.0 开始,在 UTC 模式下,默认格式由 moment.defaultFormatUtc
控制,格式为 YYYY-MM-DDTHH:mm:ss[Z]
。 这将返回 Z
as the offset, instead of +00:00
。
在某些情况下,本地时区(例如 Atlantic/Reykjavik
)可能具有零偏移量,并且将被视为 UTC。 在这种情况下,将 moment.defaultFormat
和 moment.defaultFormatUtc
设置为使用相同的格式可能会很有用。
改变 moment.defaultFormat
的值只会影响格式化,不会影响解析。 例如:
moment.defaultFormat = "DD.MM.YYYY HH:mm";
// parse with .toDate()
moment('20.07.2018 09:19').toDate() // Invalid date
// format the date string with the new defaultFormat then parse
moment('20.07.2018 09:19', moment.defaultFormat).toDate() // Fri Jul 20 2018 09:19:00 GMT+0300