먼저 time 데이터는 "11:00", "18:00" 처럼 문자열 형식으로 들어있다.
이 데이터를 "오전 11시", "오후 6시"의 형태로 반환하는 것이 내 목표이다.
const [hourStr, minuteStr] = reserve_info.time.split(":");
const hour = parseInt(hourStr, 10);
- split() : 지정한 문자열을 기준으로 나누어 배열로 반환해주는 함수
- parseInt(문자열, 진수) : 문자열을 숫자로 변환해주는 함수
문자열을 숫자로 변환할때 진수까지 표현한 이유는
0n처럼 0으로 시작하는숫자가 입력 되었을 때 8진수로 착각하는 경우를 방지하기 위함이다!
참고자료
자바스크립트 parseInt오류 관련 (08, 09형태의 문자가 0으로 되는 문제)
let period = '';
let displayHour = hour;
if (hour < 12) {
period = '오전';
if (hour === 0) displayHour = 12;
} else {
period = '오후';
if (hour > 12) displayHour = hour - 12;
}
이 부분은 코드 설명이 필요없을 정도로 간단한 로직이다.
오전일 때 00시는 12시로 나타냈고,
오후일 때는 12을 빼서 원하는 형태로 변환했다.
period.concat(" ", displayHour, "시"),
- 문자열1.concat(문자열2) : 문자열을 합쳐주는 함수
concat을 사용해 완성된 문자열을 합쳤다!
period + " " + displayHour + "시"
concat함수를 사용하지 않고 이렇게도 할 수 있다.
나는 날짜 계산할 때 concat을 사용해서 시간도 concat을 사용했다!
{
"date": "2025.06.05 (목)",
"time": "오전 11시",
"people_num": "3명"
}
이렇게 시간까지 원하는 형태로 바꿀 수 있었다!
코딩테스트 푸는 것 같고 재미있었던 거 같다ㅎㅎ