前端常用的时间格式配置格式
本文最后更新于:2024年7月25日 下午
概述
我现在用的很多软件(如:Code、Obsidian、PicGo)或前端浏览器插件(如:Markdownload)或 静态站点生成器(如:Hexo)都是基于 JavaScript 技术的。这里配置项常常会涉及到时间格式的配置。而与时间有关的往往都会用到 moments.js 这个库。
Moments.js 已经在数百万个项目中成功使用,其为使 web 上的日期和时间更好做出了贡献。截至 2020 年 9 月,Moment 每周下载量超过 1200 万次!
Moments.js 格式
这是最健壮的显示选项。它接受一个 token 字符串,并用它们对应的值替换它们。
1 | |
| Token | Output | |
|---|---|---|
| 月份 | 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 | |
| 每月几日 | D | 1 2 … 30 31 |
| Do | 1st 2nd … 30th 31st | |
| DD | 01 02 … 30 31 | |
| 星期几 | 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 | |
| 每年的第几周 | 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 注: 本文件符合 ISO 8601 标准,适用于 9999 年以后的日期 |
|
| AM/PM | 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 | |
| Fractional Second | 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 Note: as of 1.6.0, the z/zz format tokens have been deprecated from plain moment objects. Read more about it here. However, they do work if you are using a specific time zone with the moment-timezone addon. |
| Z | -07:00 -06:00 … +06:00 +07:00 | |
| ZZ | -0700 -0600 … +0600 +0700 | |
| Unix Timestamp | X | 1360013296 |
| Unix Millisecond Timestamp | x | 1360013296123 |
本地化的格式
由于首选格式根据语言环境的不同而不同,因此可以使用一些标记来根据语言环境对某个时刻进行格式化。
在相同的格式上有大写和小写的变化。小写版本是其大写版本的缩写版本。
| Time | LT | 8:30 PM |
|---|---|---|
| Time with seconds | LTS | 8:30:25 PM |
| Month numeral, day of month, year | L | 09/04/1986 |
| l | 9/4/1986 | |
| Month name, day of month, year | LL | September 4, 1986 |
| ll | Sep 4, 1986 | |
| Month name, day of month, year, time | LLL | September 4, 1986 8:30 PM |
| lll | Sep 4, 1986 8:30 PM | |
| Month name, day of month, day of week, year, time | LLLL | Thursday, September 4, 1986 8:30 PM |
| llll | Thu, Sep 4, 1986 8:30 PM |
默认格式
调用没有格式的 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 作为偏移量,而不是 +00:00。
举例
比如:
- 我的浏览器插件配置为:
YYYY-MM-DD HH:mm:ss, 显示效果为:2021-09-18 15:36:16 - 我的 obsidian 模板插件配置为:
YYYY-MM-DD_ddd,显示效果为:2021-09-14_周二 - 我的博客配置为:
LL a,显示效果为:2021年9月18日 下午
参考链接
📑参考链接:
前端常用的时间格式配置格式
https://ewhisper.cn/posts/11415/