Node.js 시간 데이터 오전 오후 구분하기

지수·2025년 6월 7일

Node.js

목록 보기
4/4
post-thumbnail

1. 오늘의 목표

먼저 time 데이터는 "11:00", "18:00" 처럼 문자열 형식으로 들어있다.

이 데이터를 "오전 11시", "오후 6시"의 형태로 반환하는 것이 내 목표이다.


2. 시간과 분 데이터 나누기

  • 오전, 오후를 판단하는데 필요한 시간 부분만 가져와 줍니다!
const [hourStr, minuteStr] = reserve_info.time.split(":");
const hour = parseInt(hourStr, 10);
  • split() : 지정한 문자열을 기준으로 나누어 배열로 반환해주는 함수
  • parseInt(문자열, 진수) : 문자열을 숫자로 변환해주는 함수

문자열을 숫자로 변환할때 진수까지 표현한 이유는
0n처럼 0으로 시작하는숫자가 입력 되었을 때 8진수로 착각하는 경우를 방지하기 위함이다!

참고자료
자바스크립트 parseInt오류 관련 (08, 09형태의 문자가 0으로 되는 문제)


3. 오전, 오후 구분하기

  • 12보다 작으면 오전으로 12보다 크면 오후로 판단하기!
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을 빼서 원하는 형태로 변환했다.


4. 문자 합치기

  • 원하는 형태로 바꾼 시간 데이터를 합치는 코드
period.concat(" ", displayHour, "시"),
  • 문자열1.concat(문자열2) : 문자열을 합쳐주는 함수

concat을 사용해 완성된 문자열을 합쳤다!

period + " " + displayHour + "시"

concat함수를 사용하지 않고 이렇게도 할 수 있다.
나는 날짜 계산할 때 concat을 사용해서 시간도 concat을 사용했다!


5. 결과

{
    "date": "2025.06.05 (목)",
    "time": "오전 11시",
    "people_num": "3명"
}

이렇게 시간까지 원하는 형태로 바꿀 수 있었다!
코딩테스트 푸는 것 같고 재미있었던 거 같다ㅎㅎ

profile
개발자 꿈나무 여고생

0개의 댓글