반응형
이벤트 종료 처리를 위해 날짜 비교 로직을 스크립트에 넣었는데, 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
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 |