2014-11-18 2 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'보다 더 큰 것으로 보인다. 누군가 나를 도울 수 있습니까?

업데이트 : 나는 더 이상한 것을 발견했습니다. 다음 코드 조각 : enter image description here

+2

무엇이 문제입니까? – Bergi

+2

** from_date1 ** 및 ** end_date1 ** 인수는 순간 객체입니까? –

+0

@Bergi 문제를 업데이트했습니다. – ssj

답변

0

가 내 moment.js가에 같은 문제가 :

내가 간격 일을 얻을 DIFF 사용하는
   console.log(from_date); 
       console.log(end_date); 
       var days = from_date.diff(end_date, 'days'); 
       console.log(days); 

, 다음과 같은 출력을 제공합니다 버전 2.12.0
그것은 문제가 포맷 방법에 의한 것처럼 보인다

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

내가 양식을 사용 "YYYY-M-D"에 가까울 때, 내
결과는 이전 시간이 나중에
시간보다 큼을 나타냅니다. 모멘트 오브젝트를 초기화 할 때 포맷 방법을 제거한 후에
비교가 올바르게 작동합니다.