IE에서 실행하는 경우:
var currentDate = new Date( );
alert(currentDate.getYear());
은 2008년에 뜨는데 FF에서는 108입니다. 왜 그럴까요?
먼저 "그리니치 표준시(GMT)" 시간을 이해해 봅시다. 1900년부터 시작됩니다. 이 연산식을 살펴보겠습니다: 108 1900 = 2008
이유는 FF가 를 추가하지 않기 때문입니다. 1900년. 그러면 코드는 다음과 같습니다.
/**
* 현재 날짜 가져오기
*
* @return {}
*/
function getCurrentDate() {
var userAgent = navigator.userAgent.toLowerCase()
// IE의 연도는 2008년이고 FF는 108이므로,
var currentYear = currentDate.getYear() ;
if ($.browser.mozilla) {
currentYear = 1900;
}
var currentDateStr = currentYear '-' (currentDate.getMonth( ) 1) '-' currentDate.getDate() ;
return currentDateStr;
};
문제가 해결되었고 테스트에 성공했습니다
나중에 시스템을 실행했습니다. GOOGLE 브라우저 크롬에서 동일한 문제가 발생했습니다...
이 판단을 보세요:
if ($.browser.mozilla)
여기서는 위 코드가 통과되었는지 여부를 판단합니다. 테스트인데 GOOGLE 브라우저는 어떻습니까?
저도 마찬가지로 판단했습니다.
var userAgent = navigator.userAgent.toLowerCase();
var chrome = /chrome/.test(userAgent)
jQuery의 브라우저 판단이 적용됩니다. 여기서는 정규식을 사용하여 일련의 브라우저 매개변수를 얻은 다음 크롬 문자열이 있는지 쿼리합니다. GOOGLE 브라우저가 있는 경우 최종 코드는 다음과 같습니다.
/**
* 현재 날짜 가져오기
*
* @return {}
*/
function getCurrentDate() {
var userAgent = navigator.userAgent.toLowerCase ();
//Google 브라우저인지 확인
var chrome = /chrome/.test(userAgent)
var currentDate = new Date()// IE의 연도는 2008이고 FF는 108이므로
var currentYear = currentDate.getYear()
if ($.browser.mozilla || chrome) {
currentYear = 1900; >}
var currentDateStr = currentYear '-' (currentDate.getMonth() 1) '-'
currentDate.getDate()
return currentDateStr
다른 브라우저는 논리적 추론이면 충분합니다
마지막으로 주목해야 할 점은 월을 구하는 방법입니다: currentDate.getMonth() 1. 날짜는 원래 설계되었을 때 0부터 시작하므로 에 1을 추가해야 합니다. 얻은 달.