숫자를 시간단위로 포맷 바꾸기

하늘·2024년 4월 11일
0

1. 💥 문제

type number 700, 1830 등을
type string 07:00, 18:30 등으로 바꾸려 함

string으로 바꾼 이유는 앞자리에 0을 쉽게 붙이게 하기 위함이다.

2. 🎊 해결

dayjs로 포맷팅하려 했으나 자바스크립트로 직접짜볼까 함
(사실 포맷팅 실패해서 우회하는 것...)

1) 숫자 규칙 찾기

700 -> 07:00
1830 -> 18:30

앞 2자리(1자리)는 시간, 뒷 2자리는 분이다.
시간은 Math.floor(t / 100)이고
분은 t % 100인 셈(나머지)

2) 앞자리 처리

그리고 700같이 4자리가 아니라 3자리인 숫자는 length로 판단해 0을 붙여준다.
10처럼 앞자리가 생기면 상관없고
12부턴 오후니까 또 상관없어진다

그럼 간단하게 요렇게 가능함

// 730 1830
export default function changeTime(t) {
    let hours = String(Math.floor(t / 100));
    let minutes = String(t % 100);

    if (t.toString().length == 3) {
        hours = '0' + hours;
    }

    console.log(t, '는   ', hours, ':', minutes)
}

👏 3. 테스트

성공 이긴한데

다양한 포맷으로 테스트해보면

분단위가 10이하인 경우 앞단에 0을 붙여줘야겠다.

간단하게 length로 처리

    if(minutes.length < 2){
        minutes = '0' + minutes;
    }

이제 정상적으로 출력된다.

profile
새싹 프론트엔드 개발자

0개의 댓글

관련 채용 정보