[js] Date object 생성 시 IOS (safari) 스크립트 오류 발생 - 특정 날짜의 요일 정보 알아내기

Jinbro·2023년 12월 13일
0

javascript

목록 보기
13/13

배경설명

  • 하이브리브앱 환경에서 Date 객체를 활용하여 날짜 데이터의 요일 정보 출력하는 기능 구현
    • Android (chrome) 정상, IOS (safari) 스크립트 오류 발생!

소스참고

export const dateUtil = {
  /**
   * Date 객체 반환
   * @param {string} dt 일자 YYYYMMDD
   * @returns {Date} Fri Nov 17 2023 15:10:11 GMT+0900 (한국 표준시)
   */
  getDateObj: (dt) => {
    if (!dt || dt.length !== 8) {
      return new Date();
    }

    return new Date(dateUtil.toDateFrmt(dt, "."));
  },
  /**
   * 요일 문자열 반환
   * @param {string} dt 일자 YYYYMMDD
   * @returns {string} 요일 ex) '일'
   */
  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, "-"));
  • safari, chrome 둘 다 정상

결론

  • 하이브리드앱 환경에서는 IOS, Android 둘 다 꼼꼼하게 테스트 필수! 🤩
profile
자기 개발 기록 저장소

0개의 댓글