반응형

이벤트 종료 처리를 위해 날짜 비교 로직을 스크립트에 넣었는데, IE에서만 제대로 실행되지 않는 문제가 있었다.

콘솔에 딱히 에러가 없었는데, 찾아보니 IE에서는 안된다고 잘 알려진 이슈였다.

var nowTime = new Date();
var endTime = new Date("2022-04-26 10:00:00"); //invalid date in IE
if (nowTime > endTime){
    //alert("이벤트가 종료되었습니다. 감사합니다.");
    location.href = 'naver.com'
}

 

그러면 어떻게 해야 IE가 알아볼까 싶어서 찾아봤는데, 제일 쉽게 수정할 수 있는 방법은 Date constructor를 사용하는 방법이었다.

var nowTime = new Date();
//var endTime = new Date("2022-04-26 10:00:00"); //invalid date in IE
//var endTime = new Date(2022, 4, 26, 10, 00, 00); //May로 표시됨 0이 1월...
var endTime = new Date(2022, 3, 26, 10, 00, 00); 
if (nowTime > endTime){
    //alert("이벤트가 종료되었습니다. 감사합니다.");
    location.href = 'naver.com'
}

다만 조심해야하는 것은 monthIndex가 0부터 시작하기 때문에 4월은 3으로, 12월은 11로 표시해야 한다. 그리고 시간은 24시간 체계이다.

new Date(year, monthIndex, day, hours, minutes, seconds)

 

자세한 설명은 아래 링크를 참조하자!

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date

 

Date() constructor - JavaScript | MDN

Creates a JavaScript Date instance that represents a single moment in time in a platform-independent format.Date objects contain a Number that represents milliseconds since 1 January 1970 UTC.

developer.mozilla.org

 

728x90
반응형

'개발 > javascript' 카테고리의 다른 글

[js][IE] inline script [object]  (0) 2023.01.11
[js] 0.07 * 100?  (0) 2023.01.03
[ts] typescript utility type  (0) 2022.07.05
[js] 자바스크립트 기초  (0) 2022.01.25

+ Recent posts