浏览器之间的Javascript日期问题

Javascript Date Issue Between Browsers

本文关键字:日期 问题 Javascript 之间 浏览器      更新时间:2024-02-09

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

年/月/日Thour:分钟

将其不清楚的包裹起来

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工作中运行,我会遇到以下输出问题Str 2:无效日期END 2:无效日期

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

感谢

在正则表达式中,是否尝试删除'T'之前的''''?

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