阅读:3836回复:2
JS中 new Date 你不知识的知识点
来看一道考题:
var day=new Date(2017,5,31);console.log(day.getMonth()); 结果为() A. 2017 B. 31 C. 6 D. 5 结果:选择C 为什么? 为什么? 为什么? 解析: new Date()语法: new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); getMonth()方法: 返回一个0 到 11的整数值:0 代表一月份,1 代表二月份, 2 代表三月份,依次类推。 根据上面的知识,我们知识了new Date() 第二个参数monthIndex,指的就是月份对应的索引, 一般比正常的月份值少1. 而getMonth()方法,刚好也是获取对应的索引值,那结果为什么为返回6呢? 为什么呢?我们来做下测试,把day对应的值改一下, 改个3看看,输出结果为5; 改成36,输出为6; 改成66,输出结果为7 原来,当day值,超过了当前月的最大值,最后进行天数相加,而不是直接赋值; 题中,monthIndex为5,实际为6月,月份只有30天,而当day为31时,多的一天,就会加一天,即变成了7月。getMonth()输出即为6 哈哈,懂了嘛,又了解了一个小知识。欢迎关注,右下角公众号 |
|
|
沙发#
发布于:2021-03-17 16:26
当给定的天数超过当前月份的最大天数值时,会将超过的天数,进行日期相加。所以月份就可能会和指定的月份不一样
|
|
|
板凳#
发布于:2021-03-17 16:24
用户被禁言,该主题自动屏蔽! |
|