Author | 王平安 |
---|---|
pingan8787@qq.com | |
博 客 | www.pingan8787.com |
微 信 | pingan8787 |
每日文章推荐 | https://github.com/pingan8787/Leo_Reading/issues |
本章节复习的是JS中的时间对象,一些处理的方法。
前置知识:
JavaScript中的时间是以1970年1月1日00:00:00以来的毫秒数来储存数据类型。Data
对象的范围是相对距离UTC1970年1月1日的前后100,000,000天。
创建一个时间对象:
1 | let d = new Date([params]); |
参数params
可以是:
- 无参数:默认创建今天的日期和时间。
- 一个符合以下格式的表示日期的字符串:
“月 日, 年 时:分:秒.”或者”年月日 时分秒”
1 | let d = new Date("2018-12-20"); |
如果你省略时、分、秒,那么他们的值将被设置为0。
- 一个年,月,日的整型值的集合:
1
let d = new Date(2018, 12, 20);
- 一个年,月,日,时,分,秒的集合:
1
let d = new Date(2018, 12, 20, 23, 20, 10);
这里Date对象涉及到的方法特别多,请移步W3school JavaScript Date 对象
1.Date对象的方法
常用处理的方法有以下几类:
- “
set
“:用于设置Date对象的日期和时间的值。 - “
get
“:用去获取Date对象的日期和时间的值。 - “
to
“:用于返回Date对象的字符串格式的值。 - “
parse
和UTC
“:用于解析Date字符串。
需要注意的Date对象的一些数值问题:
- 秒/分: 0 - 59;
- 时: 0 - 23;
- 星期: 0(周日) - 6(周六)
- 日期: 1 - 31
- 月份: 0(一月) - 11(十二月)
- 年份: 从1900开始的年数
例如:
1 | let d = new Date('2018-12-10'); |
获取今年剩下的天数:
1 | let d = new Date(); |
这里Date对象涉及到的方法特别多,请移步W3school JavaScript Date 对象
注意:
格林尼治标准时间(GMT)英国、爱尔兰、冰岛和葡萄牙属于该时区。这个时区与中国北京时间的时差是8个小时,也就是说比北京时间晚8个小时。
2.使用Date对象
2.1 设置日期
为一个时间对象设置指定日期(2018年12月20日),注意这里:和前面说的一样,12月在JS的Date对象中,是用11
表示。
1 | let d = new Date(); |
设置时间对象10
天以后:
1 | let d = new Date(); |
2.2 比较时间
通常情况下,像下面这样简单比较:
1 | let d = new Date(); |
还可以比较两个日期相差多少天:
1 | let d1 = new Date('2018-10-10'); |
2.3 计算N天后星期几
1 | function d (num){ |
2.4 格式化日期
常见的日期格式化为字符串的方法有这些:
toDateString()
——以特定于实现的格式显示星期几、月、日和年;toTimeString()
——以特定于实现的格式显示时、分、秒和时区;toLocaleDateString()
——以特定与地区的格式显示星期几、月、日和年;toLocaleTimeString()
——以特定于实现的格式显示时、分、秒;toUTCString()
——以特定于实现的格式完整的UTC日期。
获取并格式化日期:年-月-日:
1 | function d (date){ |
日期字符串转为 年-月-日:
1 | function d (str){ |
获取当前星期几:
1 | let d = "今天是星期" + "日一二三四五六".charat(new Date().getDay()); |
2.5 获取某年某月的天数
这里有个小技巧,若给new Date()
传入一个如aaaa/aa/0
参数时,可以得到aa
月的前一个月的最后一天,如传入2018/12/0
会得到2018/11/30
。
值得注意的是: 在Chrome浏览器上并不支持,会返回Invalid Date
导致结果为NaN
,但是我们可以使用aaaa,aa,0
形式作为参数,下面分别写出这两种:
1 | // aaaa/aa/0形式 只要传入年和月 |
2.6 获取上个月/下个月日期(“yyyy-mm-dd”)
传入参数的格式”yyyy-mm-dd”,其实也可以是Date()对象,大家可以自行尝试。
1 | // 上个月 date格式"yyyy-mm-dd" |
下个月的计算方法也是相似:
1 | // 上个月 date格式"yyyy-mm-dd" |
参考资料
本部分内容到这结束
Author | 王平安 |
---|---|
pingan8787@qq.com | |
博 客 | www.pingan8787.com |
微 信 | pingan8787 |
每日文章推荐 | https://github.com/pingan8787/Leo_Reading/issues |
JS小册 | js.pingan8787.com |