浏览器之间的Javascript日期问题

时间:2012-07-24 14:52:47

标签: javascript validation google-chrome date blackberry-webworks

函数接收两个日期的格式是: YYYY / MM / DDTHH:MM

年/月/ dayThour:分

包围其不清楚

function compareDates(start, end) {
    console.log("Start: " + start);
    console.log("END : " + end);

    var start1 = start.replace(/\T/g,' ')
    var start2 = new Date(start1);

    var end1 = end.replace(/\T/g,' ')
    var end2 = new Date(end1);

    console.log("Str 1: " + start1);
    console.log("Str 2: " + start2);    
    console.log("END 1: " + end1);
    console.log("END 2: " + end2);

    console.log((end - start));
    console.log((end - start) < 0);

    if ((end - start) < 0 || (end - start) == 0) {return false;}else{return true}
}

调试前的原始代码

function compareDates(start, end) {
    start = new Date(start.replace(/\T/g,' '));
    end = new Date(end.replace(/\T/g,' '));
    if ((end - start) < 0 || (end - start) == 0) {return false;}else{return true}
}

控制台用于我的错误记录,在chrome中这可以正常工作而没有错误,如果结束日期等于或早于我的开始日期,则返回false。

如果我在网络工作中运行,我会遇到以下输出问题 Str 2:无效日期 结束2:无效日期

我不明白为什么这在黑莓网络作品中不起作用,但是在Chrome中是如何解决的,我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:2)

在正则表达式中,您是否尝试在“T”之前删除“\”?

如果后面的字符对正则表达式引擎具有特殊含义(大写字母T没有),则只需要以这种方式使用前导斜杠。看起来Chrome很宽松而忽略了斜杠,而其他浏览器却没有。