Date 이슈 in Safari

2023년 11월 27일

#Javascript#Break issue#Safari#Date

만약 서버에서 아래와 같은 Date 포맷을 내려준다고 가정을 해보자

const date = "2023-11-27 01:51:11 +0000";

그럴 때 위와 같은 날짜 포맷은 new Date 생성자를 통해 만들면 safari에서 인식을 못하는 이슈를 겪었다.

replace 메소드를 통해 - 스트링을 / 로 바꿔서 format하면 정상 작동하는 것을 확인할 수 있다.

const cutDate = date.replace(/-/g, "/"); // "2023/11/27 01:51:11 +0000"

-를 인식을 못하는 건 아니지만 다양한 날짜의 형식에 따라 인식 여부가 나뉘는 것으로 추측이 된다.

여러 Date 형식을 종합해보면 아래와 같다

// safari에서 인식이 가능한가?

new Date("2023-02-02 00:00:00 +0900"); // no

new Date("2023-02-02 00:00:00+0900"); // yes

new Date("2023-02-02T00:00:00 +0900"); // no

new Date("2023-02-02T00:00:00+0900"); // yes

new Date("2023/02/02 00:00:00 +0900"); // yes

new Date("2023/02/02 00:00:00+0900"); // yes

new Date("2023/02/02T00:00:00+0900"); // no 크롬도 no, 옳지않은 형식

new Date("2023/02/02T00:00:00 +0900"); // no 크롬도 no, 옳지않은 형식

참조

  • https://2dowon.github.io/docs/javascript/ios-new-date/

피드백은 언제나 환영입니다.