Dateオブジェクトの値に年、月、分、秒などの新しい値を設定する

Date オブジェクトのインスタンスメソッドである setFullYear は Date オブジェクトが持つ値に対して新しい年の値を取得します。同様に月、日、曜日、時、分、秒、ミリ秒の値を Date オブジェクトの値に対して新しく設定するメソッドが用意されています。

また Date オブジェクトのインスタンスメソッドである setUTCFullYear は Date オブジェクトが持つ値に対して年の値を UTC タイムゾーンでの値として設定します。同様に UTC タイムゾーンでの月、日、曜日、時、分、秒、ミリ秒の値を Date オブジェクトの値に対して新しく設定するメソッドが用意されています。

ここでは Date オブジェクトの setFullYear メソッドなど Date オブジェクトの値に対して新しい日付や時間に関する値を設定するメソッドの使い方について解説します。

(Last modified: )

日付と時刻の値を設定するメソッドの一覧

Date オブジェクトが持つ値に対して日付と時刻の値をそれぞれ設定するメソッドとして次のものが用意されています。

メソッド動作
setFullYear年の値を設定する
setMonth月の値を設定する
setDate日の値を設定する
setHours時の値を設定する
setMinutes分の値を設定する
setSeconds秒の値を設定する
setMillisecondsミリ秒の値を設定する

それぞれのメソッドは Date クラスのオブジェクトが持つ値に対して年や分の値を新しく設定します。この時、ローカルの環境で設定されているタイムゾーンの値として設定されます。

同じように Date オブジェクトが持つ値に対して日付と時刻の値をそれぞれ設定しますが、 UTC タイムゾーンでの値として設定するメソッドとして次のものが用意されています。

メソッド動作
setUTCFullYearUTCタイムゾーンでの年の値を設定する
setUTCMonthUTCタイムゾーンでの月の値を設定する
setUTCDateUTCタイムゾーンでの日の値を設定する
setUTCHoursUTCタイムゾーンでの時の値を設定する
setUTCMinutesUTCタイムゾーンでの分の値を設定する
setUTCSecondsUTCタイムゾーンでの秒の値を設定する
setUTCMillisecondsUTCタイムゾーンでのミリ秒の値を設定する

それぞれのメソッドは Date クラスのオブジェクトが持つ値い対して年や分の値を新しく設定します。この時 UTC タイムゾーンが使用されます。

それでは順に見ていきます。

年、月、日の値を設定する

Date オブジェクトが持つ値の中で年、月、日の値を個別に変更するメソッドについて解説します。

年の値を変更する(setFullYear)

Date オブジェクトの setFullYear メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「年」の値を設定します。書式は次の通りです。

Dateオブジェクト.setFullYear(年[, 月[, 日]])

年の値を 1000 から 9999 までの 4 桁の数値で指定します。 1994 年であれば 1994 を、 2020 年であれば 2020 を返します。 setFullYear メソッドでは年の他に月や日の値も同時に設定することができます(その場合、月は 0 から 11 、日は 1 から 31 までの数値で設定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:07:10 GMT+0900 (日本標準時)

d.setFullYear(2018);
console.log(d.toString());
>> Wed Oct 17 2018 06:07:10 GMT+0900 (日本標準時)

d.setFullYear(2014, 8, 23);
console.log(d.toString());
>> Tue Sep 23 2014 06:07:10 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、年の値を変更しました。また年、月、日の値を同時に変更してみました。

月の値を変更する(setMonth)

Date オブジェクトの setMonth メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「月」の値を設定します。書式は次の通りです。

Dateオブジェクト.setMonth(月[, 日])

月の値を 0 から 11 の数値で設定します。 0 が 1 月、 1 が 2月、 11 が 12 月に相当します。 setMonth メソッドでは月の他に日の値も同時に設定することができます(その場合、日は 1 から 31 までの数値で設定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:12:35 GMT+0900 (日本標準時)

d.setMonth(5);
console.log(d.toString());
>> Wed Jun 17 2020 06:12:35 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、月の値を変更しました。

日の値を変更する(setDate)

Date オブジェクトの setDate メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「日」の値を設定します。書式は次の通りです。

Dateオブジェクト.setDate(日)

日の値を 1 から 31 の数値で設定します。 1 が 1 日、 31 が 31 日に相当します。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:16:40 GMT+0900 (日本標準時)

d.setDate(24);
console.log(d.toString());
>> Sat Oct 24 2020 06:16:40 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、日の値を変更しました。

時、分、秒、ミリ秒の値を設定する

Date オブジェクトが持つ値の中で時、分、秒、ミリ秒の値を個別に変更するメソッドについて解説します。

時の値を変更する(setHours)

Date オブジェクトの setHours メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「時」の値を設定します。書式は次の通りです。

Dateオブジェクト.setHours(時[, 分[, 秒[, ミリ秒]]])

時の値を 0 から 23 までの数値で指定します。 setHours メソッドでは時の他に分、秒、ミリ秒の値も同時に設定することができます(その場合、分は 0 から 59 、秒は 0 から 59 、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:37:18 GMT+0900 (日本標準時)

d.setHours(12);
console.log(d.toString());
>> Sat Oct 17 2020 12:37:18 GMT+0900 (日本標準時)

d.setHours(21, 12, 20, 712);
console.log(d.toString());
>> Sat Oct 17 2020 21:12:20 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、時の値を変更しました。また時、分、秒、ミリ秒の値を同時に変更してみました。

分の値を変更する(setMinutes)

Date オブジェクトの setMinutes メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「分」の値を設定します。書式は次の通りです。

Dateオブジェクト.setMinutes(分[, 秒[, ミリ秒]])

分の値を 0 から 59 までの数値で設定します。 setMinutes メソッドでは分の他に秒、ミリ秒の値も同時に設定することができます(その場合、秒は 0 から 59 、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:43:06 GMT+0900 (日本標準時)

d.setMinutes(4);
console.log(d.toString());
>> Sat Oct 17 2020 06:04:06 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、分の値を変更しました。

秒の値を変更する(setSeconds)

Date オブジェクトの setSeconds メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「秒」の値を設定します。書式は次の通りです。

Dateオブジェクト.setSeconds(秒[, ミリ秒])

秒の値を 0 から 59 までの数値で設定します。 setSeconds メソッドでは分の他にミリ秒の値も同時に設定することができます(その場合、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:47:44 GMT+0900 (日本標準時)

d.setSeconds(18);
console.log(d.toString());
>> Sat Oct 17 2020 06:47:18 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を出力したあと、秒の値を変更しました。

ミリ秒の値を変更する(setMilliseconds)

Date オブジェクトの setMilliseconds メソッドは、 Date オブジェクトが持つ日付と時刻の値に対してローカルのタイムゾーンでの「ミリ秒」の値を設定します。書式は次の通りです。

Dateオブジェクト.setMilliseconds(ミリ秒)

Date オブジェクトが持つ値からミリ秒の値を 0 から 999 までの数値で設定します。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.getMilliseconds());
>> 686

d.setMilliseconds(777);
console.log(d.getMilliseconds());
>> 777

Date オブジェクトが持つミリ秒の値を出力したあと、ミリ秒の値を変更しました。

UTCタイムゾーンでの年、月、日の値を設定する

Date オブジェクトが持つ値の中で UTC タイムゾーンでの年、月、日の値を個別に変更するメソッドについて解説します。

UTCタイムゾーンでの年の値を変更する(setUTCFullYear)

Date オブジェクトの setUTCFullYear メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「年」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCFullYear(年[, 月[, 日]])

年の値を 1000 から 9999 までの 4 桁の数値で指定します。 1994 年であれば 1994 を、 2020 年であれば 2020 を返します。 setUTCFullYear メソッドでは年の他に月や日の値も同時に設定することができます(その場合、月は 0 から 11 、日は 1 から 31 までの数値で設定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:02:22 GMT

d.setUTCFullYear(2017);
console.log(d.toUTCString());
>> Mon, 16 Oct 2017 22:02:22 GMT

d.setUTCFullYear(1996, 3, 30);
console.log(d.toUTCString());
>> Tue, 30 Apr 1996 22:02:22 GMT

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、年の値を変更しました。また年、月、日の値を同時に変更してみました。

UTCタイムゾーンでの月の値を変更する(setUTCMonth)

Date オブジェクトの setUTCMonth メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「月」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCMonth(月[, 日])

月の値を 0 から 11 の数値で設定します。 0 が 1 月、 1 が 2月、 11 が 12 月に相当します。 setMonth メソッドでは月の他に日の値も同時に設定することができます(その場合、日は 1 から 31 までの数値で設定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:06:30 GMT

d.setUTCMonth(2);
console.log(d.toUTCString());
>> Mon, 16 Mar 2020 22:06:30 GMT

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、月の値を変更しました。

UTCタイムゾーンでの日の値を変更する(setUTCDate)

Date オブジェクトの setUTCDate メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「日」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCDate(日)

日の値を 1 から 31 の数値で設定します。 1 が 1 日、 31 が 31 日に相当します。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:06:30 GMT

d.setUTCDate(28);
console.log(d.toUTCString());
>> Mon, 16 Mar 2020 22:06:30 GMT

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、日の値を変更しました。

UTCタイムゾーンでの時、分、秒、ミリ秒の値を設定する

Date オブジェクトが持つ値の中で UTC タイムゾーンでの時、分、秒、ミリ秒の値を個別に変更するメソッドについて解説します。

UTCタイムゾーンでの時の値を変更する(setUTCHours)

Date オブジェクトの setUTCHours メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「時」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCHours(時[, 分[, 秒[, ミリ秒]]])

時の値を 0 から 23 までの数値で指定します。 setUTCHours メソッドでは時の他に分、秒、ミリ秒の値も同時に設定することができます(その場合、分は 0 から 59 、秒は 0 から 59 、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:37:18 GMT+0900 (日本標準時)

d.setUTCHours(2);
console.log(d.toUTCString());
>> Sat Oct 17 2020 12:37:18 GMT+0900 (日本標準時)

d.setUTCHours(19, 36, 8, 284);
console.log(d.toUTCString());
>> Sat Oct 17 2020 21:12:20 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、時の値を変更しました。また時、分、秒、ミリ秒の値を同時に変更してみました。

UTCタイムゾーンでの分の値を変更する(setUTCMinutes)

Date オブジェクトの setUTCMinutes メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「分」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCMinutes(分[, 秒[, ミリ秒]])

分の値を 0 から 59 までの数値で設定します。 setUTCMinutes メソッドでは分の他に秒、ミリ秒の値も同時に設定することができます(その場合、秒は 0 から 59 、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:18:06 GMT

d.setUTCMinutes(17);
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:17:06 GMT

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、分の値を変更しました。

UTCタイムゾーンでの秒の値を変更する(setUTCSeconds)

Date オブジェクトの setUTCSeconds メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「秒」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCSeconds(秒[, ミリ秒])

秒の値を 0 から 59 までの数値で設定します。 setUTCSeconds メソッドでは分の他にミリ秒の値も同時に設定することができます(その場合、ミリ秒は 0 から 999 までの数値で指定します)。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:47:44 GMT+0900 (日本標準時)

d.setUTCSeconds(58);
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:47:18 GMT+0900 (日本標準時)

Date オブジェクトが持つ値を UTC タイムゾーンでの値で出力したあと、秒の値を変更しました。

UTCタイムゾーンでのミリ秒の値を変更する(setUTCMilliseconds)

Date オブジェクトの setUTCMilliseconds メソッドは、 Date オブジェクトが持つ日付と時刻の値に対して UTC タイムゾーンでの「ミリ秒」の値を設定します。書式は次の通りです。

Dateオブジェクト.setUTCMilliseconds(ミリ秒)

Date オブジェクトが持つ値からミリ秒の値を 0 から 999 までの数値で設定します。

サンプルコード

次のサンプルをみてください。

let d = new Date();
console.log(d.getUTCMilliseconds());
>> 717

d.setUTCMilliseconds(846);
console.log(d.getUTCMilliseconds());
>> 846

Date オブジェクトが持つミリ秒の値を UTC タイムゾーンでの値で出力したあと、ミリ秒の値を変更しました。

-- --

Date オブジェクトの setFullYear メソッドなど Date オブジェクトの値に対して新しい日付や時間に関する値を設定するメソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。