2021SC@SDUSC
文章目录
概述
在本周,我较为系统的学习和总结了amis
的常用第三方库:moment
,对其做下总结。
moment()
初始化moment
对象
moment();
moment(undefined);
moment([]);
moment({});
要获取当前的日期和时间,只需调用不带参数的 moment() 即可。
var now = moment();
这基本上与调用 moment(new Date())
相同。
moment(string)
当从字符串创建 moment 时,需要首先检查字符串是否与已知的 ISO 8601
格式匹配,如果未找到已知的格式,则在降维到 new Date(string) 之前检查字符串是否与 RFC 2822
日期时间格式匹配。
ISO 8601
ISO 8601 字符串需要日期片段。
2013-02-08 # 日历日期片段。
2013-W06-5 # 星期日期片段。
2013-039 # 序数日期片段。
20130208 # 基本的完整日期(短)。
2013W065 # 基本的星期、工作日(短)。
2013W06 # 仅基本的星期(短)。
2013050 # 基本的序数日期(短)。
还可以包括时间片段,与日期片段之间使用空格或大写字母 T 分隔。
2013-02-08T09 # 使用 T 分隔的小时时间片段。
2013-02-08 09 # 使用空格分隔的小时时间片段。
2013-02-08 09:30 # 小时、分钟的时间片段。
2013-02-08 09:30:26 # 小时、分钟、秒钟的时间片段。
2013-02-08 09:30:26.123 # 小时、分钟、秒钟和毫秒的时间片段。
2013-02-08 24:00:00.000 # 小时 24、分钟、秒钟、毫秒等于 0 表示第二天午夜。
20130208T080910,123 # 短的日期和时间,精确到毫秒,以逗号分隔。
20130208T080910.123 # 短的日期和时间,精确到毫秒。
20130208T080910 # 短的日期和时间,精确到秒钟。
20130208T0809 # 短的日期和时间,精确到分钟。
20130208T08 # 短的日期和时间,仅有小时。
任何的日期片段都可以有时间片段。
2013-02-08 09 # 日历日期片段和小时时间片段。
2013-W06-5 09 # 星期日期片段和小时时间片段。
2013-039 09 # 序数日期片段和小时时间片段。
如果包含时间片段,则还可以将 UTC 的偏移量包含为 ±HH:mm、±HHmm、±HH 或 Z。
2013-02-08 09+07:00 # +-HH:mm
2013-02-08 09-0100 # +-HHmm
2013-02-08 09Z # Z
2013-02-08 09:30:26.123+07:00 # +-HH:mm
2013-02-08 09:30:26.123+07 # +-HH
如果字符串与以上任何格式都不匹配,并且无法使用 Date.parse
进行解析,则 moment.isValid
将会返回 false。
moment("not a real date").isValid(); // false
RFC 2822
在解析 RFC 2822 日期时间之前,将会清理字符串以删除所有的注释和换行符。 其他的字符虽然在格式上合法,但对创建有效的 moment 实例没有任何作用。
清理之后,该字符串会在以下使用空格分隔的部分中进行验证,全部使用英语:
6 Mar 17 21:22 UT
6 Mar 17 21:22:23 UT
6 Mar 2017 21:22:23 GMT
06 Mar 2017 21:22:23 Z
Mon 06 Mar 2017 21:22:23 z
Mon, 06 Mar 2017 21:22:23 +0000
- 星期几(三个字母),后面跟随一个可选的逗号。(可选的)
- 月份中的某天(1 或 2 位数字),后面跟随三个字母的月份和 2 或 4 位数字的年份。
- 两位数字的小时和分钟,以冒号(:)分隔,后面可选地跟随另一个冒号和 2 位数字的秒钟。
- 时区或偏移量采用以下格式之一:
- UT : +0000
- GMT : +0000
- EST | CST | MST | PST | EDT | CDT | MDT | PDT : 美国时区*
- A - I | K - Z : 军事时区*
- 时间偏移 +/-9999