レッスンに戻る

今日経過した秒数を教えてください。

重要性: 5

今日開始から経過した秒数を返す関数getSecondsToday()を作成してください。

たとえば、現在が午前10時00分で、夏時間シフトがなかった場合、

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

この関数はどんな日でも機能する必要があります。つまり、「今日」のハードコードされた値があってはいけません。

秒数を取得するには、現在の日時00:00:00を使用して日付を生成し、「現在」から差し引きます。

その差がその日の開始からのミリ秒数であり、秒数を取得するために1000で割る必要があります。

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

  // create an object using the current day/month/year
  let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

  let diff = now - today; // ms difference
  return Math.round(diff / 1000); // make seconds
}

alert( getSecondsToday() );

別の解決策として、時/分/秒を取得して秒数に変換する方法があります。

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

alert( getSecondsToday() );