2014-10-17 6 views
1

전체 날짜에서 2 개의 날짜의 차이를 찾기 위해 Stack Exchange에서 약간의 스크립트를 발견했지만 "Uncaught TypeError : undefined is not a 기능".잡히지 않은 TypeError : undefined가 함수가 아닙니다.

크롬으로 표시되는이 HTML은 상당히 간단한 HTML 페이지입니다.

선명도 : 대한

(약간 단순화 된 버전

<script> 
function monthDiff(from, to) { 
    var monthsLeft = to.getMonth() - from.getMonth() + (12 * (to.getFullYear() - from.getFullYear())); 
    if(to.getDate() < from.getDate()) { 
     monthsLeft--; 
    } 
    return monthsLeft; 
    } 


function lumpChange() { 

     var today = new Date(); 
     var april5th = new Date(); 
     var MonthsLeft = 0; 

     today = '10/05/2015'; 
     april5th = '04/05/2015'; 
     MonthsLeft = monthDiff(today, april5th); 
    } 

</script> 
+0

당신은 monthDiff'에 두 개의 문자열을 통과 한()', 그것은 날짜 객체를 기대 보이는 곳. – George

+0

@George, 죄송합니다, 너무 많이 축소되었습니다. var decallations를 포함하도록 편집되었습니다. –

+0

Ahh 예, 정렬되었습니다. 날짜를 바꿔서 var-s를 문자열로 바꾸는 것이 었습니다. 감사합니다. –

답변

1

(... 등) (VAR monthsLeft = to.getMonth) 함수의 첫 번째 라인을 좋아하지 않는 것

monthDiff() 함수는 등의 메서드를 사용하여 매개 변수로 Date 개체가 전달 될 것으로 예상하는 것처럼 보입니다. 당신은 문자열을 전달하고 있습니다.

당신은 변수에 문자열을 할당하여 Date 개체를 수정하지 않는 객체에 처음이었다

를 인스턴스화 할 때 당신은 Date을 정의 할 수 있습니다.

function lumpChange(){ 
    var today = new Date(2015, 10, 05), 
     april5th = new Date(2015, 04, 05); 

    MonthsLeft = monthDiff(today, april5th); // -6 
} 

JSFiddle

당신이 만약 Date 개체의 날짜/시간을 인스턴스화 한 후에 설정해야하는 경우 setter methods을 사용할 수 있습니다.

문서가 :

관련 문제