2021SC@SDUSC amis代码分析(4)

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. 月份中的某天(1 或 2 位数字),后面跟随三个字母的月份和 2 或 4 位数字的年份。
  3. 两位数字的小时和分钟,以冒号(:)分隔,后面可选地跟随另一个冒号和 2 位数字的秒钟。
  4. 时区或偏移量采用以下格式之一:
    • UT : +0000
    • GMT : +0000
    • EST | CST | MST | PST | EDT | CDT | MDT | PDT : 美国时区*
    • A - I | K - Z : 军事时区*
    • 时间偏移 +/-9999
上一篇:2013考研数学1试卷评析


下一篇:2013 蟠桃记(杭电)