欢迎访问鸿雪径,这里介绍软件相关技术、动态以及鸿雪径杂谈,如有技术合作请与站长联系!邮费网 易食烤吧 特产大全网
首页 > 互联网 > IE浏览器javascript new date NAN bug的解决

IE浏览器javascript new date NAN bug的解决

发布时间:2016-04-27 作者: 点击:879

最近给同事做了个birt报表加载页面,功能挺简单,实现日期的选择,为了方便输入支持上一天、下一天,及快速选择最近的几天,用了2个小时交付,自己在mac下的safari、chrome测试没有问题。

同事在系统部署后,客户机子上点击上一天竟然日期那成了NaN-NaN-NaN,自己检查代码,怎么看都找不出问题来,毕竟很简单,上一天的处理过程就是取得当前日期输入框的内容,构造一个date,然后减去一天,之后再构造出日期字符串放回输入框。使用开发工具跟踪了一下,竟然发现构造的date就是NaN-NaN-NaN。

function addDate(date,days){ 
    var d=new Date(date); 
    d.setDate(d.getDate()+days); 
    var month=d.getMonth()+1; 
    var day = d.getDate(); 
    if(month<10){ 
        month = "0"+month; 
    } 
    if(day<10){ 
        day = "0"+day; 
    } 
    var val = d.getFullYear()+"-"+month+"-"+day; 
    return val; 
}

自己的日期格式是yyyy-mm-dd 即2016-04-27这样的格式,赶紧查查相关资料吧,发现原来ie挑剔这个日期的格式,需要是yyyy/mm/dd这样的,于是上面那段代码修改为:

function addDate(date,days){ 
    var d=new Date(date.replace("-","/")); 
    d.setDate(d.getDate()+days); 
    var month=d.getMonth()+1; 
    var day = d.getDate(); 
    if(month<10){ 
        month = "0"+month; 
    } 
    if(day<10){ 
        day = "0"+day; 
    } 
    var val = d.getFullYear()+"-"+month+"-"+day; 
    return val; 
}

修改够经测试ie、chrome、safari、firefox、opera均正常了!

更多关于 date,javascript 的信息

    暂无相关信息

本站部分文章转载于网上,版权归原作者所有。如果侵犯您的权益,请Email和本站联系!
鸿雪径 www.HongXueJing.com  冀ICP备07017673号-4