レッスンに戻る

今日何秒経過しましたか?

重要性: 5

今日の開始から秒数を返す関数 getSecondsToday() を書いてください。

例えば、今 10:00 am で夏時間のシフトがない場合:

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

関数は任意の日で動作する必要があります。つまり、“今日” のハードコードを持つべきではありません。

秒数を取得するために、現在の日で、時間が 00:00:00 の日付を生成し、“今” からそれを減算します。

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

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

  // 現在の 日/月/年を使ってオブジェクトを作成
  let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

  let diff = now - today; // ms difference
  return Math.round(diff / 1000); // 秒を作る
}

alert( getSecondsToday() );

代わりの解答として、時間/分/秒 を取得してそれらを秒に変換する、という方法もあります。:

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