사람이 읽기 쉬운 시간 형식 만들기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 주어진 밀리초 (milliseconds) 숫자를 사람이 읽기 쉬운 형식으로 변환하는 formatDuration 함수를 살펴봅니다. 며칠, 시간, 분, 초, 밀리초에 해당하는 값을 추출하기 위해 수학적 연산을 사용하는 방법을 배우게 됩니다. 또한 filter, map, join과 같은 다양한 배열 메서드를 사용하여 사용자 친화적인 방식으로 지속 시간을 표시하는 문자열을 생성합니다. 이 랩을 마치면 JavaScript 에서 시간 관련 데이터를 조작하고 형식화하는 방법에 대한 더 깊은 이해를 얻게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

지속 시간 형식 지정

주어진 밀리초 숫자를 사람이 읽을 수 있는 형식으로 얻으려면 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.
  2. ms를 적절한 값으로 나누어 day, hour, minute, second, millisecond에 대한 적절한 값을 얻습니다.
  3. Object.entries()Array.prototype.filter()를 사용하여 0 이 아닌 값만 유지합니다.
  4. Array.prototype.map()을 사용하여 각 값에 대한 문자열을 생성하고 적절하게 복수형으로 만듭니다.
  5. Array.prototype.join()을 사용하여 값을 문자열로 결합합니다.

다음은 코드입니다.

const formatDuration = (ms) => {
  if (ms < 0) ms = -ms;
  const time = {
    day: Math.floor(ms / 86400000),
    hour: Math.floor(ms / 3600000) % 24,
    minute: Math.floor(ms / 60000) % 60,
    second: Math.floor(ms / 1000) % 60,
    millisecond: Math.floor(ms) % 1000
  };
  return Object.entries(time)
    .filter((val) => val[1] !== 0)
    .map(([key, val]) => `${val} ${key}${val !== 1 ? "s" : ""}`)
    .join(", ");
};

다음은 몇 가지 예입니다.

formatDuration(1001); // '1 second, 1 millisecond'
formatDuration(34325055574);
// '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'

요약

축하합니다! 지속 시간 형식 지정 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.