배경설명
- 하이브리브앱 환경에서 Date 객체를 활용하여 날짜 데이터의 요일 정보 출력하는 기능 구현
- Android (chrome) 정상, IOS (safari) 스크립트 오류 발생!
소스참고
export const dateUtil = {
getDateObj: (dt) => {
if (!dt || dt.length !== 8) {
return new Date();
}
return new Date(dateUtil.toDateFrmt(dt, "."));
},
getDtwkStr: (dt) => {
const dtwks = ["일", "월", "화", "수", "목", "금", "토"];
var dateObj = dateUtil.getDateObj(dt);
return dtwks[dateObj.getDay()];
},
}
- toDateFrmt : 1번째 인자 "YYYYMMDD" 를 2번째 인자 구분자 "." 로 YYYY.MM.DD 문자열 반환
원인
- 구분자가 "." 인 경우, safari 는 스크립트 오류 반환!
new Date('2023.12.13');
- safari : Invalid Date
- chrome : Wed Dec 13 2023 00:00:00 GMT+0900 (한국 표준시)
조치
return new Date(dateUtil.toDateFrmt(dt, "-"));
결론
- 하이브리드앱 환경에서는 IOS, Android 둘 다 꼼꼼하게 테스트 필수! 🤩