🗓
【JavaScript】Dateオブジェクトのメソッドについてまとめた
はじめに
この記事は学習ノートです。
JavaScriptのDateオブジェクトについて、学んだことをまとめました。
Dateオブジェクトとは
- JavaScriptの組み込みオブジェクト
- 日付や時刻を保存し、管理するためのメソッドを提供する
- Dateオブジェクトは、協定世界時(UTC)の1970年1月1日からの経過ミリ秒数を表すNumberの値を含んでいる
作成する
new Date()
- 引数がない場合、現在の日付と時刻でDateオブジェクトを作成する
const now = new Date();
console.log(now); // Fri Apr 28 2023 23:12:04 GMT+0900 (日本標準時)
new Date(datestring)
- 1つの引数でそれが文字列の場合、引数で渡した日時のオブジェクトを作成する
const now = new Date("2023-04-28");
// 時刻が設定されていないので、UTCの深夜0時とみなされ、ローカルのタイムゾーン合わせて調整される
console.log(now); // Fri Apr 28 2023 09:00:00 GMT+0900 (日本標準時)
new Date(year, month, date, hours, minutes, seconds, ms)
- 与えられた要素でDateオブジェクトを作成する
const date = new Date(2023, 0, 1); // ""は不要!
console.log(date); // Sun Jan 01 2023 00:00:00 GMT+0900 (日本標準時)
取得する
getFullYear()
- 年を4桁で取得する
-
getYear()
ではなく、getFullYear()
※getYear()
というメソッドもあるけど、2桁の年を返す場合があるので非推奨らしい
const now = new Date();
const nowYear = now.getFullYear();
console.log(nowYear); // 2023
getMonth()
- 月を取得する
- 返す値は0から11😭
const now = new Date(2023, 3, 29);
const nowMonth = now.getMonth();
console.log(nowMonth); // 3
console.log(`現在の月: ${nowMonth + 1}月`); // 現在の月: 4月
getDate()
- 日付を取得する
- 返す値は1~31
const now = new Date(2023, 3, 29);
const nowDate = now.getDate();
console.log(nowDate); // 29
getHours()、getMinutes()、getSeconds()、getMilliseconds()
- 時間、分、秒、ミリ秒を取得する
getDay()
- 曜日を取得する
- 返す値は0(日曜日)から6(土曜日)
const now = new Date(2023, 3, 29);
const nowDay = now.getDay();
console.log(nowDay); // 6
👇 曜日を返すようにしたいとき
const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
const d = new Date(2023, 3, 29);
let day = weekday[d.getDay()]; // weekday[6];
console.log(day); // Saturday
設定する
setFullYear(year [, month, date])
setMonth(month [, date])
setDate(date)
setHours(hour [, min, sec, ms])
setMinutes(min [, sec, ms])
setSeconds(sec [, ms])
setMilliseconds(ms)
※[ ]内はオプション
let today = new Date(2023, 3, 29);
today.setHours(12, 0, 0, 0);
console.log(today); // Sat Apr 29 2023 12:00:00 GMT+0900 (日本標準時)
自動補正について
- 範囲外の値を指定したとき、自動的に調整される
- うるう年の日付を細かく考えなくていいので、便利!
let date = new Date(2023, 1, 32); // 2月32日は存在しないので、3月になるs
console.log(date);
// Sat Mar 04 2023 00:00:00 GMT+0900 (日本標準時)
おわりに
業務でDateオブジェクトをたくさん扱ったのですが、monthを0から数えるせいで最初はかなり混乱しました😂
Date.now()についてはまだ理解が足りていないので、今後書きたいと思います!
参考
Discussion