돌아가기

몇 초나 지났을까요?

중요도: 5

오늘 하루가 시작된 이후 몇 초나 지났는지 반환하는 함수 getSecondsToday()를 만들어보세요.

현재 시각이 10:00 am이고, 서머타임이 적용되지 않은 경우라면 아래와 같은 결과가 나와야 합니다.

getSecondsToday() == 36000 // (3600 * 10)

주의: 어떤 날이든 함수를 호출했을 때, 원하는 결과가 반환되어야 합니다. '오늘’을 나타내는 값을 하드 코딩하지 마세요.

경과 초를 알려면 오늘 00시 00분 00초를 나타내는 Date 객체를 만들고, '지금’을 나타내는 객체에서 이 객체를 빼야 합니다.

차이는 밀리초 기준이기 때문에 1000을 나눠 초로 변경해야 합니다.

function getSecondsToday() {
  let now = new Date();

  // 현재 년, 월, 일을 나타내는 객체를 생성
  let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

  let diff = now - today; // 차이(ms)
  return Math.round(diff / 1000); // 초로 변환
}

alert( getSecondsToday() );

경과 시간, 분, 초를 초로 변환하는 것도 방법이 될 수 있습니다.

function getSecondsToday() {
  let d = new Date();
  return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}

alert( getSecondsToday() );