Проблема с датой Javascript между браузерами

Формат, который функция получает две даты: ГГГГ / ММ / ДДТЧЧ: ММ.

Год / месяц / день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, если дата окончания равна или раньше моей даты начала.

Если я работаю в сети, я получаю следующие проблемы с выводом Str 2: Invalid Date END 2: Invalid Date

Я не понимаю, почему это не работает в Blackberry Web-works, но работает в Chrome, и как мне решить эту проблему?

Спасибо


person Lemex    schedule 24.07.2012    source источник


Ответы (1)


В вашем регулярном выражении вы пытались удалить '\' перед 'T'?

Вам нужно использовать косую черту в начале, только если следующий за ней символ имеет особое значение для механизма регулярных выражений (заглавная буква T не имеет). Похоже, Chrome проявляет снисходительность и игнорирует косую черту, тогда как другой браузер - нет.

person codebox    schedule 24.07.2012
comment
Как сравнить 10:09 2010/10/10 с 10:09 10/10/10? - person Lemex; 24.07.2012
comment
Обнаружил, что проблема заключается в том, что я постоянно бьюся головой об стену, ваш ответ был правильным + у меня была опечатка! Благодарность :) - person Lemex; 24.07.2012