Javascript / IE日期时间错误

时间:2013-01-04 09:24:29

标签: javascript internet-explorer firefox

在IE中使用此代码:

if(!Date.prototype.toISOString) Date.prototype.toISOString = function(){
    var padZero = function(str, len){while(str.length < len) str = '0' + str; return str;};

    var ret = padZero(''+this.getUTCFullYear(), 4)
        + '-' + padZero(''+this.getUTCMonth(), 2)
        + '-' + padZero(''+this.getUTCDate(), 2)
        + 'T' + padZero(''+this.getUTCHours(), 2)
        + ':' + padZero(''+this.getUTCMinutes(), 2)
        + ':' + padZero(''+this.getUTCSeconds(), 2)
        + 'Z';
    alert(ret);
    return ret;
}

我收到以下错误..

执行urlrewrite查询时发生错误:错误:FORG0001:类似日期时间值的非法词法形式'2012-00-05T09:09:46Z'月份字段的值0无效。 [第42行,第9栏]

我已经对month参数进行了几次修复,但似乎无法正确使用..所以,任何帮助都会被大量推荐。

BTW:他们上面的代码在Firefox中工作得很好。来图,对吧?

1 个答案:

答案 0 :(得分:2)

getUTCMonth()基于零,因此0是1月。您可以为其添加1以形成日期字符串:

+ '-' + padZero(''+(this.getUTCMonth()+1), 2)

来自MDN docs

  

getUTCMonth - 根据通用时间返回指定日期的月份(0-11)。