아이폰(IOS) JS new Date 이슈

mandarinduk·2021년 5월 28일
0

대여일과 반납일의 기간이 14일 이상일 경우 alert을 띄워 사용자에게 알려주는 작업을 했다.

resDateresReturnDate에 각각 대여일과 반납일이 'YYYYMMDD'의 String 형식으로 저장되어 있어 slice를 통해 잘라서 new Date의 파라미터로 넣어주었다.

PC와 안드로이드에서는 잘 작동을 하는데 IOS에서는 alert이 나오지 않는 문제가 발생했다.
구글링을 통해 IOS에서는 표준표기법으로 new Date의 파라미터를 전달해줘야 하는 이슈가 있는 것을 알아냈다. ex) new Date(2021,05,28)

const startDate = new Date(Number(resDate.slice(0,4)),Number(resDate.slice(4,6))-1,Number(resDate.slice(6)));
const endDate = new Date(Number(resReturnDate.slice(0,4)),Number(resReturnDate.slice(4,6))-1,Number(resReturnDate.slice(6)));
const dateDiff = Math.ceil((endDate.getTime()-startDate.getTime())/(1000*3600*24));

  if (dateDiff >= 14) {
	alert("최대 13박까지 검색 및 대여 가능 합니다.");
	return;
  }

위의 코드와 같이 각 파라미터를 Number로 형변환해주니 IOS에서도 잘 작동했다.
참고로 월(month)은 0부터 시작하기 때문에 -1을 해줘야한다!

profile
front-end 신입 개발자

0개의 댓글