⊗jsPmTmAA 322 of 505 menu

JavaScriptにおける日付の自動調整

JavaScriptには、非常に興味深く便利な特性があります: オブジェクトDateを作成する際に無効な時間が指定された場合、 自動的に有効な時間に再計算されるということです。 例を見てみましょう。

ご存知の通り、35日という日付は存在しません。 1月の最大日数は31日です。 つまり、35日という日付は 4日分余分にあることになります。 このような場合、JavaScriptは単純に余分な4日を 翌月に加算します:

let date = new Date(2018, 0, 35); console.log(date); // 2月4日になります

余分な日だけでなく、月も指定できます。 この際、月は0から始まるため、最後の有効な月は 11番目(11月)であることを覚えておく必要があります。 12番目の月を指定すると、翌年の1月になります:

let date = new Date(2018, 12, 1); // 12番目の月を指定 console.log(date); // 2019年1月1日になります

前述の調整機能は、逆方向にも機能します。 ご存知の通り、月の最小日は1番目です。 したがって、0番目の日を指定すると、 前月の最終日になります:

let date = new Date(2018, 1, 0); // 0日目を指定 console.log(date); // 1月31日になります

日や月に負の値を指定することもできます。 この場合、最小日は1番目、 最小月は0番目であることを思い出してください。 つまり、-1日目は前月の終わりから2番目の日になり、 -1月目は単純に前年の最後の月になります:

let date = new Date(2018, 1, -1); // -1日を指定 console.log(date); // 1月30日になります
let date = new Date(2018, -1, 1); // -1月を指定 console.log(date); // 2017年12月1日になります

上記の説明は、時間、分、秒についても同様に機能します:

let date = new Date(2018, 0, 1, 24, 0, 0); // 24時間目を指定 console.log(date); // 1月2日、0時になります
let date = new Date(2018, 0, 1, 25, 0, 0); // 25時間目を指定 console.log(date); // 1月2日、1時になります

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 1, 35); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 15, 1); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 3, 31); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 1, 31); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 12, 33); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 33, 33); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 5, 0); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 0, 0); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, -12, -33); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 0, 1, 23, 0, 60); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 0, 1, 23, 60, 0); console.log(date); // 日付は何になりますか?

JavaScriptが以下の時間をどの日付に変換するか判定してください:

let date = new Date(2018, 0, 1, 100, 100, 100); console.log(date); // 日付は何になりますか?
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否