2014-12-08 5 views
0

이것은 내 코드이며 "Uncaught TypeError : undefined is not function"이 무엇이 잘못 되었습니까?Javascript 날짜가 정의되지 않은 오류

var myDate = new Date().setDate(17); 
document.getElementById("result").innerHTML = myDate.getDate(); 
+1

.. 그것은 처음 사용하지 않을 때 왜 'somethingelse'를 재정의? – Rhumborl

+0

세 번째 변수는 쓸모가 없습니다. 두 번째 var로 이미 완료 했으므로 변수를 한 번만 선언해야합니다. – Havvy

답변

5

setDate수정가 호출 및 undefined를 반환하는 객체입니다. 당신이 확인하려면 somethingelsetoday가 언급 된 날짜를 참조하지만, 일 변경, 당신은 today을 복사 한 다음 somethingelse 변경할 수 있습니다 : 당신이 무엇 보존 상관하지 않은 경우 물론

var today = new Date(); 
var somethingelse = new Date(today.getTime()); 
somethingelse.setDate(17); 
document.getElementById("result").innerHTML = somethingelse.getDate(); 

을, today, 사본을 만들지 않고도이를 수정할 수 있습니다.

var date = new Date(); 
date.setDate(17); 
document.getElementById("result").innerHTML = date.getDate(); 
+0

'new Date (today)'는 * today *를 문자열로 변환 한 다음 그 문자열을 다시 Date로 구문 분석하고'today.getTime()'을 사용하는 것과 동일한 새로운 날짜 (+ today) 유형. ;-) 1 월 21 일, 15 일과 같은 날짜의 경우 위의 방법은 1915 년 1 월 21 일의 날짜를 IE 및 일부 다른 브라우저에서 복사합니다. 2 자리수의 애매한 유산이지만 누군가 언젠가는 물어볼 것 중 하나입니다 ... – RobG

+0

@RobG : 제안에 감사드립니다. – icktoofay

2

이 훨씬 충분하다 : 동일한 today 객체와 set 해당 개체에 대한 get 날짜를 취할 수 있습니다.

var today = new Date(); 
today.setDate(17); 
document.getElementById("result").innerHTML = today.getDate(); 

Fiddle