1

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

年/月/日时:分

包住它不清楚的地方

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。

如果我在 web-works 中运行,我会得到以下输出问题 Str 2: Invalid Date END 2: Invalid Date

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

谢谢

4

1 回答 1

2

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

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

于 2012-07-24T14:57:12.190 回答