IE浏览器javascript new date NAN bug的解决
发布时间:2016-04-27 作者: 点击:893
最近给同事做了个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和本站联系!