대여일과 반납일의 기간이 14일 이상일 경우 alert을 띄워 사용자에게 알려주는 작업을 했다.
resDate와 resReturnDate에 각각 대여일과 반납일이 '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을 해줘야한다!