今日何秒経過しましたか?
重要性: 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();
};