今回は「Dateオブジェクト」についてご紹介させて頂きます。
「Date」という名前のとおり、年、日、時間等を取得するメソッドが中心になります。
最近はライブラリを使用することが一般的になってきていますので、使用頻度は少ないかもしれませんが、一通り読めるようにしておきましょう。
Date オブジェクト
Dateオブジェクトは、ECMAScriptで定義されたビルトインオブジェクトになります。
コンストラクタを使用しインスタンスを作成することで、特定の日時を表す事が出来ます。
式はnew演算子を伴います。
new Date()
Date オブジェクトの基準となる時刻は、「1970年1月1日0時0分0秒」になっていて、ミリ秒で保管されています。
現在時刻のインスタンスを作成する
let time = new Date(); console.log(time); Thu Apr 21 2022 13:11:19 GMT+0900 (日本標準時)
引数に何も指定しなければ、現在時刻を返します。
new演算子を使わずに、「Date()」のみ記述しても現在時刻を返します。
ただし、その際は引数に何かを指定してもすべて無視されます。
色々な使い方
ミリ秒で指定する
let time = new Date(2000); console.log(time); Thu Jan 01 1970 09:00:02 GMT+0900 (日本標準時)
2000ミリ秒(2秒)を引数に指定しています。
返される時刻は、基準時刻から2秒経過した日時が表示されています。
なお、タイムゾーンを指定していないので、日本標準時に合わせて表示されているため、9時間が経過した時間が返されています。
年・月・日・時・分・秒・ミリ秒を指定する
let time = new Date(2022,05,01,10,10,10,1010); console.log(time); Wed Jun 01 2022 10:10:11 GMT+0900 (日本標準時)
年と月は必ず指定する必要があります。
月に関しては「0 = 1月」となっていますので、注意してください。
toString()
let time = new Date(); console.log(time.toString()); Thu Apr 21 2022 13:52:50 GMT+0900 (日本標準時)
「toString()」メソッドを使うと、ローカルのタイムゾーンが返されます。
toDateString()
let time = new Date(); console.log(time.toDateString()); Thu Apr 21 2022
「toDateString()」メソッドを使うと、日付の情報が返されます。
(年と曜日も返されます)
toTimeString()
let time = new Date(); console.log(time.toTimeString()); 14:00:53 GMT+0900 (日本標準時)
「toTimeString()」メソッドを使うと、時刻に関する情報が返されます。
toUTCString()
let time = new Date(); console.log(time.toUTCString()); Thu, 21 Apr 2022 05:08:14 GMT
「toUTCString()」メソッドを使うと、UTC時刻を返します。
toJson
let time = new Date(); console.log(time.toJSON()); 2022-04-21T05:22:55.952Z
「toJSON」メソッドを使うと、ISO8601形式の文字列が返されます。
toLocalString()
let time = new Date(); console.log(time.toLocaleString('FR')); 21/04/2022, 14:29:32 console.log(time.toLocaleString('US')); 2022/4/21 14:30:07 console.log(time.toLocaleString('JP')); 2022/4/21 14:32:05
「toLocalString()」メソッドを使うと、指定した国の表示形式で返されます。
指定した国の時間ではありませんのでご注意ください。
「toLocalDateString()」、「toLocalTImeString()」も使用できます。
getTime()
let time = new Date(); console.log(time.getTime()); 1650520236925 console.log(time.valueOf()); 1650520236925
「getTime()」メソッドは経過ミリ秒を返します。
「valueOF()」も同様の値を返します。
setTime()
let time = new Date(); console.log(time.getTime()); 1650520645916 time.setTime(10000); console.log(time.toUTCString()); Thu, 01 Jan 1970 00:00:10 GMT
「setTime()」メソッドは、引数に指定したミリ秒を新しい値として置き換えます。
getTImezoneOffset()
let time = new Date(); console.log(time); Thu Apr 21 2022 16:58:23 GMT+0900 (日本標準時) console.log(time.getTimezoneOffset()); -540
UTCタイムとの差を「分」で返します。
get と set の使い方
get メソッド
let time = new Date(); console.log(time); Thu Apr 21 2022 16:22:32 GMT+0900 (日本標準時) let year = time.getFullYear(); let month = time.getMonth(); let date = time.getDate(); let day = time.getDay(); let hours = time.getHours(); let minutes = time.getMinutes(); let seconds = time.getSeconds(); let milliseconds = time.getMilliseconds(); console.log(year + '年' + month + '月' + date + '日' + day + '曜日' + hours + '時' + minutes + '分' + seconds + '秒' + milliseconds); 2022年3月21日4曜日16時22分32秒837
年からミリ秒まで取得するメソッドを記述させて頂きました。
例ではあえて記述しませんでしたが、ここで注意して頂きたい点が2つあります。
- monthはプラス1を付け加える:「time.getMonth() +1;」
- 曜日は数値で返される
曜日を月曜、火曜などと表示する場合は、配列を作って代入させてください。
メソッド | 意味 |
---|---|
getFullYear() | 年を取得 |
getMonth() | 月を取得 (0から始まる) |
getDate() | 日を取得 |
getDay() | 曜日を取得 (数値で取得) |
getHours | 時間を取得 |
getMinutes | 分を取得 |
getSeconds | 秒を取得 |
getMilliseconds | ミリ秒を取得 |
UTCタイムゾーンを取得する場合は、「getUTCYear」と記述します。
set メソッド
let time = new Date(); console.log(time); Thu Apr 21 2022 16:46:00 GMT+0900 (日本標準時) time.setFullYear(2030); time.setMonth(0); time.setDate(1); time.setHours(10); time.setMinutes(10); time.setSeconds(10); time.setMilliseconds(100); console.log(time); Tue Jan 01 2030 10:10:10 GMT+0900 (日本標準時)
getメソッドの「get」が「set」に置き換わった感じです。
getメソッドと同様に、monthは「0」から始まります。
曜日は自動で変わります。
Date メソッド 一覧
意味 | |
---|---|
toString() | 現在時刻を返す |
toDateString() | 日付を返す |
toTimeString() | 時刻を返す |
toUTCString() | UTC時刻を返す |
toJSON() | ISO8601形式の文字列を返す |
toLocalString() | 指定した国の表示形式で返す |
getTime() | 経過ミリ秒を返す |
valueOf() | 経過ミリ秒を返す |
setTime() | 引数に指定したミリ秒を新しい値とします |
getTImezoneOffset() | UTCタイムとの差を返す |
あとがき
いかがでしたか。
とても沢山のメソッドがありましたが、無理に暗記する必要はありません。
必要に応じて覚えていけば良いと思います。
今回も最後までお読み頂きありがとうございました。
UTC時刻を指定したのに、GMTと表示されています。
UTCは世界標準時の略、GMTはグリニッジ標準時。
言葉で説明すると両者に違いはあるのですが、実際は同じように使われています。
日本は9時間足した時間(日本時間から9時間引いた時間)になっています。