函数接收两个日期的格式是: 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中是如何解决的,我该如何解决这个问题?
由于
答案 0 :(得分:2)
在正则表达式中,您是否尝试在“T”之前删除“\”?
如果后面的字符对正则表达式引擎具有特殊含义(大写字母T没有),则只需要以这种方式使用前导斜杠。看起来Chrome很宽松而忽略了斜杠,而其他浏览器却没有。