JavaScriptで日付の扱い方について勉強したので、ここにまとめておきます。
╰(*´︶`*)╯
Dateクラスの使い方
JavaScriptで日付を扱うにはDateクラスを使うのが簡単です。
$(function(){
console.clear();
//現在の日付を取得(2019/12/11)
var date = new Date();
console.log(date);
// 結果(日付):[object Date]{ Wed Dec 11 2019 22:28:19 GMT+0900 (日本標準時) }
});
「new Date()」でインスタンスを作成する際、引数を空にすると現在の日付と時刻が取得できます。取得したオブジェクトはDate型になっています。
他にDateクラスには様々な関数が用意されており、年のみ取得したり、曜日を取得することも可能です。
$(function(){
console.clear();
//現在の日付を取得(2019/12/11)
var date = new Date();
console.log(date.getFullYear());
// 結果(年):2019
console.log(date.getMonth()+1);
// 結果(月):12
console.log(date.getDate());
// 結果(日):11
console.log(date.getDay());
// 結果(曜日):3
console.log(date.getHours());
// 結果(時間):22
console.log(date.getMinutes());
// 結果(分):28
console.log(date.getSeconds());
// 結果(秒):19
});
注意点が2つあります。
注意ポイント
- getMonth()で取得できる月は0始まりであり、実際の日付として扱うには+1する必要があります。(0が1月、1が2月、・・・11が12月)
- getDay()で曜日を取得することができますが、曜日に対応した数値が返ってくる仕様になっています。(0が日曜、1が月曜、・・・6が土曜)
先月、来月、月初日、月末日の求め方
Dateクラスをうまく使うと先月、来月、月初日、月末日の日付も簡単に求めることができます。
$(function(){
console.clear();
//現在の日付を取得(2019/12/11)
var date = new Date();
// 来月
var next_month = new Date(date.getFullYear(), date.getMonth()+1, date.getDate());
// 先月
var last_month = new Date(date.getFullYear(), date.getMonth()-1, date.getDate());
console.log(next_month.getFullYear()+ "/" +(next_month.getMonth()+1)+ "/" + next_month.getDate());
// 結果(来月):"2020/1/11"
console.log(last_month.getFullYear()+ "/" +(last_month.getMonth()+1)+ "/" + last_month.getDate());
// 結果(先月):"2019/11/11"
// -------------------------------
// 月初日
var first_date = new Date(date.getFullYear(), date.getMonth(), 1);
// 月末日
var last_date = new Date(date.getFullYear(), date.getMonth()+1, 0);
console.log(first_date.getFullYear()+ "/" +(first_date.getMonth()+1)+ "/" + first_date.getDate());
// 結果(月初日):"2019/12/1"
console.log(last_date.getFullYear()+ "/" +(last_date.getMonth()+1)+ "/" + last_date.getDate());
// 結果(月末日):"2019/12/31"
});
日付型から文字、文字から日付型への変換
Javascriptで日付を使っていると、取得した日付を画面上に表示させたい時があります。
そういった場合では日付型のデータをそのまま画面に埋め込んでもうまく表示されないため、一旦文字列型に変換する必要があります。
$(function(){
console.clear();
//現在の日付を取得(2019/12/11)
var date = new Date();
// 日付型から文字列へ変換
console.log(date.toString());
// 結果(日付):"Wed Dec 11 2019 22:28:19 GMT+0900 (日本標準時)"
// 文字列から日付型へ変換
var date = "2019/12/11";
var date_array = date.split("/");
var date2 = new Date(date_array[0], date_array[1]-1, date_array[2]);
console.log(date2);
// 結果(日付):[object Date]{ Wed Dec 11 2019 00:00:00 GMT+0900 (日本標準時) }
});
});
文字列から日付型への変換は「toString()」を使います。
日付型から文字列の変換に関してはやり方はいろいろあり、画面の仕様によって作りを変える必要がありますが、上記例ではスラッシュ(/)区切りの日付文字列に対して日付型に変換する例を載せています。
以上です。