logo

Safari Date 포맷 관련

2022-02-27

JAVASCRIPT

발생

Chrome 에서는 정상이지만 Safari 에서는 아래와 같은 Date 객체 생성 시 Invalid Date로 생성된다

new Date('2020-01-01 00:00:00');

Chrome Devtools Console

Safari Devtools Console

원인은 Safari 에서는 Date를 파싱할 때 yyyy-mm-dd 형태의 format을 지원하지 않아서 발생하는 문제이다.


해결책

근본적인 해결책은 사용하는 Date 포맷을 yyyy/mm/dd 형태로 변환해서 사용하는 것이다. 만약 외부에서 받아오는 값이여서 변경이 힘들다면 받아온 데이터를 정규식으로 포맷을 변경하는 방법이 있다.

const dateString = '2020-01-01 00:00:00';
new Date(dateString.replace(/-/g, "/"));

Chrome Devtools Console

Safari Devtools Console

profile

Chang Hyun Kim