Javascript setInterval Cross-browser

heumheum2·2020년 5월 13일
0

순수 자바스크립트로 SPA 만드는 연습 중 시간 변경을 해야하는 문제가 있었습니다.

funtion timer(input){ // input : '2020-05-13 12:00'
  let date = new Date(input).getTime();
  setInterval(() => {
    date+=1000;
    console.log(new Date(date));
  }, 1000);
}

위 코드는 babel을 사용해 IE 10버전 이상에서도 사용할 수 있게 설정해줬습니다.

Chrome

IE

위의 이미지처럼 Chrome에서는 이상 없이 잘 돌아갔으나, IE에서는 Invalid Date 값이 나와 처음에는 new Date()함수가 IE에서 지원하지 않나 싶어 검색했습니다.

MDN에서 확인해봤을 때 버전 문제는 없었습니다.

계속 검색해보다가, IE와 Chrome의 다른 점을 찾았습니다.
Chrome에서 new Date('2020-05-14 12:11')으로 선언하면 날짜와 시간을 분리해 new Date()에 들어가는 반면, IE는 시간을 표시하는 T를 중간에 넣어줘야합니다.

예를 들면 2020-05-14T12:11 같은 형태가 되겠네요!

참고 > https://stackoverflow.com/questions/44314288/ie-date-parse-returns-nan

profile
커피가 본체인 개발자 ☕️

0개의 댓글