JavaScript中的setMonth()顺延问题及解决方法

前言: 程序备忘录,参考文章:http://blog.csdn.net/mydeman/article/details/2747636

1.JS 日期 setMonth的顺延问题

1.1现象

: 最近在用html做一个日志功能时,发现了一个奇怪的现象:  10月31日的下一天变为了 12月1日.

1.2原因 

日志里面用了一个JS的setMonth方法,而setMonth方法有一个顺延现象: 当前月份如果没有31天,而设置了31的话,当前月份会顺延,

简单的说: 当前是10月31日,下一天是11月1日,所以就先setMonth(11),然后再setDate(1),

理论上来说: 现在setMonth后应该变为了11月31日,然后再setDate 之后就变为了  11月1日. 

但是:由于有顺延现象,在设置为11月后,由于11月没有31天,所以月份就顺延了,变为了12月1日. 然后再设置setDate(1), 所以最终的结果是12月1日

1.3解决方法

(1)设置月份时,将日期设为1,  即 setMonth(month,1), 这样就不会顺延了(也可以在setMonth之前先调用setDate设置日期)

(1)可以使用setFullYear()同时设置年、月、日,即setFullYear(year,month,date)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值