일반적으로 연도를 가져올 때 다음 코드를 사용합니다.
var now = new Date(); var initYear = now.getYear();
위 코드는 IE의 initYear에서는 정확하지만 ff와 chrome에서는 호환되지 않습니다.
로 바꾸세요.
var initYear = now.getFullYear();
IE, FireFox, Chrome에서 사용 가능
JS에서 getYear()와 getFullYear()의 차이점:
js에서 현재 연도를 가져오는 방법은 var dayObj=new Date(); dayObj.getYear()입니다. 이전에 이렇게 하면 브라우저 호환성 문제가 발생할 수 있다고 썼습니다. 즉, IE에서는 다음을 얻을 수 있습니다. 우리가 원하는 것 원하는 결과가 FF에서는 작동하지 않고, 원하는 결과와 원하는 결과 사이에 1900년의 차이가 있습니다. 그때 내가 한 일은:
var dayObj=new Date(); var myYears = ( dayObj.getYear() < 1900 ) ? ( 1900 + dayObj.getYear() ) : dayObj.getYear(); document.write(myYears);
이렇게 하면 IE와 FF 간의 호환성 문제를 피할 수 있습니다.
이제 js에 getFullYear() 메소드가 있다는 것을 알았습니다. 테스트 결과, 이 방법을 사용하면 위의 문제를 피할 수 있으며 IE와 FF 모두 원하는 대로 표시할 수 있는 것으로 나타났습니다.
getFullYear 메소드
Date 객체에서 현지 시간으로 표현된 연도 값을 반환합니다.
dateObj.getFullYear()
필수 dateObj 매개변수는 날짜 객체입니다.
설명
UTC(협정 세계시)로 연도 값을 얻으려면 getUTCFulYear 메소드를 사용하십시오.
getFullYear 메소드는 연도 값을 절대 숫자로 반환합니다. 예를 들어 1976년의 반환 값은 1976입니다. 이렇게 하면 2000년 1월 1일 이후의 날짜를 1900년 1월 1일 이후의 날짜와 혼동하지 않는 2000년 문제를 피할 수 있습니다.
다음 예에서는 GetFullYear 메서드의 사용법을 보여줍니다.
function DateDemo(){ var d, s = "今天 UTC 日期是: "; d = new Date(); s += (d.getMonth() + 1) + "/"; s += d.getDate() + "/"; s += d.getFullYear(); return(s); }