<script type="text/javascript">
alert(new Date(2010,8,31));
alert(new Date(2010,9,1));
</script>
试试上面的代码。浏览器在两条消息中显示相同的日期。为什么???
<script type="text/javascript">
alert(new Date(2010,8,31));
alert(new Date(2010,9,1));
</script>
试试上面的代码。浏览器在两条消息中显示相同的日期。为什么???
你真的看过警报吗?它显示 10 月的日期。月份是从零开始的。这意味着您的第一行实际上是 9 月 31 日 - 它不存在,并且被换行到第二天,即 10 月 1 日。您的第二行也是 10 月 1 日。
Date(2010,8,31) 表示“2010 年 10 月 1 日”,Date(2010,9,1) 也表示“2010 年 10 月 1 日”
因为
在 Date(yyyy,mm,dd) 中,mm 可以设置为 0 到 11 而不是 1 到 12
因此,如果 mm 为 8,则表示八月和八月有 30 天。
在这种情况下,如果你在 dd 中输入 31,它指向 "August 30" + 1
因为 javascript 月份是从 0 开始的,比如 0=Jan, 1=Feb
由于 9 月 30 日是该月的最后一天,javascript 将其更正为 10 月 1 日。