总结分享这个近期开发解决的一个Bug。

  Javascript的Date对象具有容错性,会自动根据当年的日期根据设置的属性值转换,也就是说Date对象的setDate会影响setMonth,month会影响到setFullYear。

    JavaScript的Date对象容错性

  如果单独使用setDate、setMonth、setFullYear初始化Date对象的时候,Date未及时被初始化的属性会在你设置其他属性的时候影响到其他的属性值,

一般情况下,只会有setDate产生的影响所致,所以初始化应该由最基本的单元开始。

  表达的有点晕,代码示例。

<html>
<head>
<script type="text/javascript">
//初始化一个Date对象,表示2014-07-31
var date = new Date();
date.setDate(31);
date.setMonth(6);
date.setFullYear(2014);
//错误的设值方式
function wrongDate(date){
date.setFullYear(2014);
document.write(date + "<br />");
date.setMonth(5);
document.write(date + "<br />");
//这个时候date是2014-06-31被自动转换成2014-07-01
date.setDate(13);
//当时认为date应该是2014-06-13,其实是2014-07-13
document.write(date + "<br />");
}
//正确的设值方式
function correctDate(){
date.setDate(13);
date.setMonth(5);
date.setFullYear(2014);
document.write(date + "<br />"); date.setMonth(5,13);
date.setFullYear(2014);
document.write(date + "<br />"); date.setFullYear(2014,5,13);
document.write(date + "<br />");
}
wrongDate(date);
document.write("<br />----------------下面才是正确的---------------<br />");
correctDate(date);
</script>
</head>
<body></body>
</html>

  执行效果:

Thu Jul 31 2014 00:14:59 GMT+0800 (中国标准时间)
Tue Jul 01 2014 00:14:59 GMT+0800 (中国标准时间)
Sun Jul 13 2014 00:14:59 GMT+0800 (中国标准时间) ----------------下面才是正确的---------------
Fri Jun 13 2014 00:14:59 GMT+0800 (中国标准时间)
Fri Jun 13 2014 00:14:59 GMT+0800 (中国标准时间)
Fri Jun 13 2014 00:14:59 GMT+0800 (中国标准时间)

JavaScript Date对象更进一步的更多相关文章

  1. JavaScript Date 对象

    JavaScript Date 对象 Date 对象 Date 对象用于处理日期与实际. 创建 Date 对象: new Date(). 以上四种方法同样可以创建 Date 对象: var d = n ...

  2. JavaScript Date对象 日期获取函数

    JavaScript Date对象使用小例子: 运行结果: 总结: 1.尽管我们认为12月是第12个月份,但是JavaScript从0开始计算月份,所以月份11表示12月: 2.nowDate.set ...

  3. JavaScript Date对象介绍

    原文:JavaScript Date对象介绍 Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new ...

  4. JavaScript&Date对象

    JavaScript Date对象 <script type="text/javascript"> var date = new Date(); document.wr ...

  5. javascript Date对象 之 date初始化

    javascript Date对象 --> 日期初始化: 总结: 日期初始化的 方式: 1. new Date( yyyy, M(+), d(+), h(+), m(+), s(+) ); 2. ...

  6. javascript Date对象 之 时间转字符串

    javascript Date对象 --> 时间转字符串: 测试代码: <!DOCTYPE html> <html lang="en"> <he ...

  7. javascript Date对象 之 获取时间

    javascript Date对象 --> 获取时间: 测试代码: <!DOCTYPE html> <html lang="en"> <head ...

  8. javascript Date对象 之 设置时间

    之前对js的date对象总是感觉熟悉,而不愿细细深究其所以然,所以每当自己真正应用起来的时候,总会糊里糊涂的,今日花费2个小时的时间仔细钻研了一下,感觉 豁然开朗,故,以此记录,一来 供以后查阅,二来 ...

  9. 浏览器端-W3School-JavaScript:JavaScript Date 对象

    ylbtech-浏览器端-W3School-JavaScript:JavaScript Date 对象 1.返回顶部 1. Date 对象 Date 对象用于处理日期和时间. 创建 Date 对象的语 ...

随机推荐

  1. [置顶] javascript-基于对象or面向对象?

    最近完成了javascript的初级学习,在这个学习的视频中,我特别注意了两个词,解释性语言和对象,javascript按照我的理解,应该是种解释性语言,他有关于面向对象的思想的体现,但是,他和vb一 ...

  2. ios-制作静态.a文件

    一.制作静态库文件 /*静态库制作*/ // MakeA.h -(NSString*)testA; // MakeA.m -(NSString*)testA{ return @"静态库测试成 ...

  3. JAVA 代码开发规范

    一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改 ...

  4. iOS开发-OC语言 (七)继承、多态、类别

    继承.多态.类别 学习目标 1.继承的含义 2.父类子类的别称 3.字段和消息的继承 4.重写和重写消息的调用 5.多态 6.类别(Category) ======================== ...

  5. 选择Blobs (Evision)

    C++ // Sort by decreasing area Blobs.SortObjectsUsingFeature(OBJ_AREA, OBJ_SORT_DESCENDING); // Enum ...

  6. 设计模式(二)单例模式Singleton(创建型)

    几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销.再如大家最经常用的IM, ...

  7. (十一)if...else&for循环&while循环

    ----------------------------------if else------------------------------1.最基本的if语句:if name =="Al ...

  8. Mybatis第二天(其他)

    Mybatis第二天 框架课程 课程计划 动态sql If标签 Where标签 Sql片段 Foreach标签 关联查询 一对一关联 一对多关联 Mybatis整合spring 如何整合spring ...

  9. IMG图片垂直居中的问题

    之前老是碰到图片文字位置调整的问题,图片不按自己的要求变化,后来发现其实很简单. <P><img src="" style="vertical-alig ...

  10. 【.NET】SQL链接字符串

    第一种:OLE DB或OleDbConnection (.NET)方式 (使用SQL Server的Microsoft OLE DB提供程序)Provider=sqloledb; Data Sourc ...