프로젝트/[팀] 겸상 - 혼밥 매칭
[팀] 겸상 - Javascript의 날짜 계산 이용해 밥상 상태 정보 변경 기능 구현
DandyNow
2022. 7. 28. 15:05
728x90
반응형
밥상의 상태 표시는 "모집 중", "모집 마감"이다. 현재 시각을 기준으로 "식사 일시"가 지나지 않았고, 선택된 숟갈이 모집 정원에 미달한다면 "모집 중"으로 상태를 표시해야 한다. 이때 "식사 일시"가 지났는지 여부를 알 수 있는 방법을 코드로 작성할 때 어떻게 해야 하나 고민했다.
적용한 방법은 문자열로 되어 있는 "식사 일시" 정보를 new Date()를 이용해 날짜 정보로 바꾼 후 getTime()을 이용해 시간(연산이 가능한 숫자)으로 변환하여 계산하는 것이다. 해당 코드는 아래와 같다. 참고로 적용된 정규식은 날짜 정보를 YYYY-MM-DD hh:mm:ss 형태의 문자열로 변경한다.
async doStatusInitial() {
let nowTime = new Date(
new Date()
.toISOString()
.replace('T', ' ')
.replace(/\..*/, '')
.toString(),
).getTime();
let diningTime = new Date(
this.babsangDetailData.dining_datetime,
).getTime();
console.log(nowTime);
console.log(diningTime);
// if 조건문에서 앞의 조건은 확정된 인원이 정원을 채웠는지를 체크하는 것이고, 뒤의 조건은 식사 일시가 지났는지 체크하는 것이다.
if (
this.babsangDetailData.dining_count - this.selectedUsers.length - 1 >
0 &&
nowTime - diningTime < 0
) {
await this.changeStatus(0);
console.log('모집중');
}
},
참고한 내용은 아래와 같다.
https://www.delftstack.com/ko/howto/javascript/convert-string-to-date-in-javascript/
JavaScript에서 문자열을 날짜로 변환
이 튜토리얼은 JavaScript에서 문자열을 날짜로 변환하는 다양한 방법을 나열합니다.
www.delftstack.com
728x90
반응형