본문 바로가기
Develop/ReactNative

[rn] 왜 Date { NaN } 이 나왔지?🤔

by 3-stack 2021. 9. 29.

new Date('2021-09-30 22:35:23')    // Date { NaN }

IE8 이하는 YYYY-MM-DD 패턴 지원하지 않는다.

 

 

불안정한 네트워크 환경의 모바일에서

오프라인으로 사용하다 온라인 상황이 될 경우,

서버 데이터 시간과 로컬 데이터 시간을 비교해서 업데이트 여부를 결정하려고 했다.

// React-Native 환경에서 아래 식은 항상 false를 리턴.
new Date('2021-09-30 22:35:23') >= new Date('2021-09-29 21:34:23')

 

왜 그랬을까?

최신 브라우저는 아래와 같이 사용해도 Date 값을 정상적으로 리턴해준다.

new Date('2021-09-30 22:35:23')

하지만 React-Native나 IE8 이하에서는 YYYY-MM-DD 패턴은 인식하지 못 하고

Date { NaN } 이런 유효하지 않은 데이터 객체를 리턴한다.

 

그럼 어떻게?

1. 입력 값을 ISO 8601 기준에 맞게 사용.

    new Date(2021, 09, 30, 22, 35, 23) 와 같이 사용하거나 YYYY/MM/DD 이렇게 사용.

2. moment.js 와 같은 라이브러리를 사용한다.

 

 

 

 

댓글