首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

同一段JS在IE8中不兼容有关问题

2014-01-22 
同一段JS在IE8中不兼容问题JS代码如下function AddDays(date, days) {var nd new Date(date)nd nd.va

同一段JS在IE8中不兼容问题
JS代码如下
function AddDays(date, days) {
        var nd = new Date(date);
        nd = nd.valueOf();
        nd = nd + days * 24 * 60 * 60 * 1000;
        nd = new Date(nd);
        var y = nd.getFullYear();
        var m = nd.getMonth() + 1;
        var d = nd.getDate();
        if (m <= 9) m = "0" + m;
        if (d <= 9) d = "0" + d;
        var cdate = y + "-" + m + "-" + d;
        return cdate;
    }
传入一个date 日期 2014-1-20 11:08:55 和天数day 5天 返回 2014-1-25 
这个在谷歌浏览器中是没有问题的 在IE8中new Date 不支持

求解决 重写这个方法 使它兼容IE8浏览器和谷歌浏览器
[解决办法]


function AddDays(date, days) {
var dd = date.split(/ 
[解决办法]
-
[解决办法]
:/g);
        var nd = new Date(dd[0],dd[1]-1,dd[2],!!dd[3]?dd[3]:0,!!dd[4]?dd[4]:0,!!dd[5]?dd[5]:0);
        nd = nd.valueOf();
        nd = nd + days * 24 * 60 * 60 * 1000;
        nd = new Date(nd);
        var y = nd.getFullYear();
        var m = nd.getMonth() + 1;
        var d = nd.getDate();
        if (m <= 9) m = "0" + m;
        if (d <= 9) d = "0" + d;
        var cdate = y + "-" + m + "-" + d;
        return cdate;
    }
----------------------------------
AddDays('2014-1-20 11:09:00',5)
"2014-01-25"
AddDays('2014-1-20 11:09',5)
"2014-01-25"
AddDays('2014-1-20 11',5)
"2014-01-25"
AddDays('2014-1-20',5)
"2014-01-25"



[解决办法]
你既然是返回字符串,就没必要再多转那么一次了.直接做加运算就可以了
function AddDays(date, days) {
    date    =   date.replace(/-/g,'/');
    
    var nd  =   new Date(Date.parse(date)),
        y   =   nd.getFullYear(),
        m   =   nd.getMonth() + 1,
        d   =   nd.getDate() + days;
        
    if (m <= 9) m = "0" + m;         
    if (d <= 9) d = "0" + d; 
    var cdate = y + "-" + m + "-" + d;
    return cdate;
}
    
alert(AddDays('2014-1-20 11:08:55',7));

热点排行