【JavaScript】Date.setDate()メソッドの使い方をサンプルコード付きで解説
Dateオブジェクトとは
Dateオブジェクトは、JavaScriptに組み込まれているデータ型のひとつです。次のように new Date() を使って生成します。
Dateオブジェクトを生成すると、数多くのメソッドで日付を操作できるようになります。これらのメソッドの多くは、ローカル時刻またはUTC(協定世界時/グリニッジ標準時)を基準に、年・月・日・時・分・秒・ミリ秒の各フィールドを取得・設定するためのものです。
その中のひとつである setDate() メソッドは、月の日付を表す整数を引数に受け取り、現在の日付をその値に変更(上書き)します。戻り値は、協定世界時1970年1月1日0時0分0秒を起点とした、変更後の日時までの経過ミリ秒数です。
構文
dateObj.setDate(5);
使用例1:既存の日付の「日」を変更する
最初の例では、1989年9月26日のDateオブジェクトを生成し、setDate() で日付を1日に変更しています。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('september 26, 89 12:4:25:96');
document.write("Current date: "+dateObj.toUTCString());
document.write("<br>");
dateObj.setDate(1);
document.write("Date after modification: "+dateObj.toUTCString());
</script>
</body>
</html>出力
Current date: Tue, 26 Sep 1989 06:34:25 GMT Date after modification: Fri, 01 Sep 1989 06:34:25 GMT
使用例2:日を指定せずに生成したオブジェクトに後から日を設定する
Dateオブジェクトの生成時に「日」を指定していなくても、あとから setDate() を使って日を設定することができます。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('August, 1989 00:4:00');
document.write("<br>");
dateObj.setDate(5)
document.write(dateObj.toDateString());
</script>
</body>
</html>出力
Sat Aug 05 1989
使用例3:現在日時に対して「日」だけを変更する
コンストラクタに何も引数を渡さずに生成した場合でも、同じように setDate() で日を設定できます。このとき、月と年は現在の日付のまま維持され、「日」だけが指定した値に変更されます。
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var dateObj = new Date(); dateObj.setDate(2); document.write(dateObj.toDateString()); </script> </body> </html>
出力
Tue Oct 02 2018
使用例4:0を指定すると前月の最終日になる
setDate() に 0 を指定すると、日付は前月の最終日に設定されます。「先月の末日」を取得したいときに役立つ便利なテクニックです。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('23, August, 1989 00:4:00');
document.write("<br>");
dateObj.setDate(0);
document.write(dateObj.toDateString());
</script>
</body>
</html>出力
Mon Jul 31 1989
まとめ:setDate()を使うときのポイント
setDate()は、月の日付(通常は1〜31)を整数で指定して変更するメソッドです。- 戻り値は、協定世界時(UTC)1970年1月1日0時0分0秒から変更後の日時までの経過ミリ秒数です。
- 範囲外の値(0、負の値、月末を超える値など)を指定してもエラーにはならず、月またぎが自動的に計算されます。たとえば8月中に
setDate(32)を実行すると、翌月の1日(9月1日)に繰り越されます。 - なお、本記事のサンプルで使っている
document.write()は現在では非推奨とされているため、実際の開発ではconsole.log()やDOM操作による表示をおすすめします。
-
JavaScriptのDate.setUTCMonth()メソッドとは?構文と使い方を実例付きで解説
Dateオブジェクトは、JavaScriptに組み込まれているデータ型の一つです。Dateオブジェクトは、次のように new Date() を使って生成します。 Dateオブジェクトを生成すると、多数のメソッドを使ってそのオブジェクトを操作できます。ほとんどのメソッドは、ローカル時間またはUTC(協定世界時/GMT)のいずれかの時刻基準で、年・月・日・時・分・秒・ミリ秒の各フィールドを取得・設定するためのものです。 setUTCMonth()メソッドは、年の月を表す整数を受け取り、UTC(協定世界時)に基づいて現在の日付の「月」の値を置き換えます。月の値は0が1月を表し、以降は11が12月に
-
JavaScriptのDate.@@toPrimitive()関数とは?日付オブジェクトをプリミティブ値に変換する方法
JavaScriptのDate.@@toPrimitive()関数は、Dateオブジェクトをプリミティブ値に変換するために使用されます。このメソッドはSymbol.toPrimitiveプロパティを通じて呼び出され、引数に指定したヒント(hint)に応じて、文字列や数値など適切なプリミティブ値を返します。 ヒントの種類と戻り値 「default」:日付を表す文字列が返されます。 「number」:1970年1月1日00:00:00 UTCからの経過ミリ秒数(タイムスタンプ)が数値で返されます。 「string」:「default」と同様に、日付を表す文字列が返されます。 サンプルコード 以