2014-11-18 5 views
0

Я использую Moment.js, чтобы сравнить даты, но я получаю что-то странное. Мой код:Moment.js: сравнение между датами работает неправильно?

  var extraStackData = function (data, from_date1, end_date1) { 
       var result = {}; 
       for (var i in data) { 
        var row = data[i]; 
        if (typeof result[row['know_source']] == 'undefined') { 
         result[row['know_source']] = {}; 
        } 
        result[row['know_source']][row['create_date']] = parseInt(row['sum']); 
       } 
//    console.log(result); 
       console.log(from_date1); 
       console.log(end_date1); 
       console.log(from_date1 > end_date1); 
       var cur_date = from_date1; 
       console.log(cur_date); 
       console.log(cur_date.isAfter(end_date1)); 
       for (var source in result) { 
        for (var cur_date = from_date; cur_date.isBefore(end_date); cur_date.add("days", 1)) { 
         console.log(cur_date); 
         if (typeof result[source][cur_date] == 'undefined') { 
          result[source][cur_date] = 0; 
         } 
        } 
//     console.log(result[source]) 
       } 

Результат выглядит следующим образом:

Run result

Согласно выводу, что, кажется, что переменная from_date='2014-10-1' больше end_date='2014-11-18'. Кто-нибудь может мне помочь?

Обновление: Я нашел еще более странную вещь. Следующий фрагмент кода:

   console.log(from_date); 
       console.log(end_date); 
       var days = from_date.diff(end_date, 'days'); 
       console.log(days); 

, в котором я использую Diff, чтобы получить дни интервал дает следующий результат:

enter image description here

+2

В чем проблема? – Bergi

+2

аргументы ** from_date1 ** и ** end_date1 ** являются объектами момента? –

+0

@Bergi Я обновил свою проблему. – ssj

ответ

0

У меня есть та же самая проблема, что мои moment.js находится в версия 2.12.0
Похоже, что проблема была вызвана методом формата:

moment(....).format("YYYY-MM-DD"); 

я использую форму на «ГГГГ-М-Д», который близок к твоему, тогда мой итог сравнения показывает, что раньше времени было больше, чем позже
раз. После того, как я удаляю метод формата, когда я начинаю объект момента, сравнение работает правильно.