🗓

【JavaScript】Dateオブジェクトのメソッドについてまとめた

2023/04/30に公開

はじめに

この記事は学習ノートです。
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()についてはまだ理解が足りていないので、今後書きたいと思います!

参考

https://ja.javascript.info/date
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
https://www.javadrive.jp/javascript/date_class/

Discussion