javascript Date对象setMonth方法的bug

其实耶谈不上什么BUG,只是JS Date对象对溢出时间进行了自己的处理。

首先把你的系统时间设为2013年1月31号,这一步很重要,不然可能不会发生这个BUG,然后执行下面的代码

 

 代码如下 复制代码
var t = new Date();
t.getMonth(); //输出0,现在获取的是正确的值,因为getMonth是从0开始索引的
t.setMonth(3); //设置月份为4月
t.getMonth(); //输出4,这里本应该输出3的var t = new Date();
t.getMonth(); //输出0,现在获取的是正确的值,因为getMonth是从0开始索引的
t.setMonth(3); //设置月份为4月
t.getMonth(); //输出4,

这里本应该输出3的你会发现,你明明设置了Month值为3,但getMonth时候却输出4。此时,你可能会比较疑惑。我们再来看看现在的时间

 

 代码如下 复制代码
console.log(t); //Wed May 01 2013 11:47:31 GMT+0800 (CST)console.log(t); //Wed May 01 2013 11:47:31 GMT+0800 (CST)setMonth(3)

指定设置日期到4月份,但4月份只有30天,此时的时间是2013-04-31,但4月并没有31天。所以js对溢出日期进行了处理,自动将月份设到5月1号

针对这个问题也很好解决,只要在setMonth之前把日期设置到每月都有的日期,1-28都可以。

 代码如下 复制代码

var t = new Date();
t.setDate(1);
t.setMonth(3);
t.getMonth();//输出3

时间: 2024-09-20 07:37:51

javascript Date对象setMonth方法的bug的相关文章

JS教程:JavaScript Date 对象使用方法

JS教程:JavaScript Date 对象使用方法 先来看个例子吧,返回当前日期与时间. <html> <body> <script type="text/javascript"> document.write(Date()); </script> </body> </html> 实例二.gettime() <html> <body> <script type="text

JavaScript Date对象

原文:JavaScript Date对象 Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new Date() :返回当前的本地日期和时间 参数:无 返回值: {Date} 返回一个表示本地日期和时间的Date对象. 示例: var dt = new Date(); console.log(dt); // => 返回一个表示本地日期和时间的Date对象   2.2 new Date(millisec

JavaScript Date对象详解_javascript技巧

本篇主要介绍 Date 日期和时间对象的操作,具体内容如下 目录 1. 介绍:阐述 Date 对象. 2. 构造函数:介绍 Date 对象的构造函数new Date()几种方式. 3. 实例方法:介绍 Date 对象的get.set等实例方法. 4. 静态方法:介绍 Date 对象的静态方法:Date.now(). Date.parse()等. 5. 实际操作:介绍 Date 对象的一些示例:获取倒计时.比较2个Date对象的大小等等. 一. 介绍1.1 说明 Date对象,是操作日期和时间的对

JavaScript Date对象 日期获取函数_时间日期

JavaScript Date对象使用小例子: 运行结果: 总结: 1.尽管我们认为12月是第12个月份,但是JavaScript从0开始计算月份,所以月份11表示12月: 2.nowDate.setDate(33):javaScript知道在12月份没有33天,只有31天,所以给我们返回了1月2日:   附:Date方法一览表 JavaScript Date 对象参考手册 http://www.jb51.net/w3school/js/jsref_obj_date.asp.htm

JavaScript常用对象的方法和属性小结_javascript技巧

本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩的网页.在这一部分里,我们将介绍到如何使用与串对象有关的方法和属性. 1.串对象的length属性 串对象仅有一个属性length,这个属性值表示这个串所包括字符的相对数目.语法为: stringName.length 2.串对象的方法 JavaScript提供了多个串方法以帮助控制显示信息.串方法可以分为几个大类,如属性方

JavaScript Date对象介绍

Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new Date() :返回当前的本地日期和时间 参数:无 返回值: {Date} 返回一个表示本地日期和时间的Date对象. 示例:     var dt = new Date(); console.log(dt); // => 返回一个表示本地日期和时间的Date对象   2.2 new Date(milliseconds) :把毫秒数转换为Dat

JavaScript Date对象使用总结_javascript技巧

//全局函数 Date //Date 类的静态方法 Date.parse Date.UTC //Date 对象的建立方法 new Date() new Date(毫秒数) new Date(标准时间格式字符串) new Date(年, 月, 日, 时, 分, 秒, 毫秒) //Date 对象的更多方法 getFullYear (getUTCFullYear) getMonth (getUTCMonth) getDate (getUTCDate) getDay (getUTCDay) getHou

JavaScript中的setMonth()方法的小问题

      今天测试人员发现一个问题,从英文日期转化中文日期,月份总会有"6月"变为"7月".于是我在本地反复测试,发现如下规律:只要setMonth()的参数为小于31天的月份时就会变为下一个月.       原因是:因为当前月份是31天,而设置的月份小于31天,就会把日期顺延.在setMonth的说明是这样的: setMonth 方法 设置 Date 对象中用 本地时间表示的月份值. dateObj.setMonth(numMonth[, dateVal]) 参

JavaScript字符串对象substring方法入门实例(用于截取字符串)_基础知识

JavaScript substring 方法 substring 方法用于通过指定开始和结束位置来截取字符串并返回截取部分字符串.其语法如下: 复制代码 代码如下: str_object.substring(start, end) 参数 说明 str_object 要操作的字符串(对象) start 必需.开始截取的位置,非负整数 end 可选.字符串截取结束的位置,非负整数:如果省略,则至字符串结束为止 提示:如果参数 start 与 end 相等,那么该方法返回的就是一个空串.如果 sta