IT the Best

はてなブログのカスタマイズ情報を中心に、WEBデザインからJavaScriptまでWEB系の開発情報を発信します。便利ツールや暇つぶしのゲームなど開発物も公開します。

【JavaScript】JavaScriptでの日付の加算方法 サンプルコードあり

f:id:Surprisedblog:20210917123258j:plain

Photo by Murray Campbell on Unsplash

今回の記事は、JS(JavaScript)による日付の計算です。日付の加算、月またぎ・年またぎの計算、時分の繰り上げ・繰り下げの計算方法をサンプルコードとともに紹介します。

 

 

まずは、基本的な日付の加算方法です。年月日、時分秒ごとに計算処理をご紹介します。
最初に今日の日付を取得します。

let now=new Date()
console.log(now)
// -> Fri Sep 17 2021 10:45:44 GMT+0900 (日本標準時)

 

JavaScriptでの年加算

jsの年の加算では「setFullYear」メソッドを使用します。setFullYearメソッドはDateオブジェクトの年を設定することができるメソッドです。

引数には設定したい年を指定します。今回は加算なので、Dateオブジェクトから年を取得する「getFullYear」メソッドを使用します。

now.setFullYear(now.getFullYear() + 1)
console.log(now)
// -> Sat Sep 17 2022 10:45:44 GMT+0900 (日本標準時)
console.log(now.getFullYear())
// -> 2022

今日の年から1年加算され2022年になったと思います。年月日、時分秒それぞれ同じような計算方法です。「set〜」メソッドを使用して、引数には設定したい値を文字列で指定すれば良いだけです。

JavaScriptでの月加算

月の加算では「setMonth」を使用します。

now.setMonth(now.getMonth() + 1)
console.log(now)
// -> Mon Oct 17 2022 10:45:44 GMT+0900 (日本標準時)
console.log(now.getMonth()+1)
// -> 10

JavaScriptでの日加算

日の加算では「setDate」を使用します。

now.setDate(now.getDate() + 1)
console.log(now)
// -> Tue Oct 18 2022 10:45:44 GMT+0900 (日本標準時)
console.log(now.getDate())
// -> 18

JavaScriptでの時加算

時の加算では「setHours」を使用します。

now.setHours(now.getHours() + 1)
console.log(now)
// -> Tue Oct 18 2022 11:45:44 GMT+0900 (日本標準時)
console.log(now.getHours())
// -> 11

 

JavaScriptでの分加算

分の加算では「setMinutes」を使用します。

now.setMinutes(now.getMinutes() + 1)
console.log(now)
// -> Tue Oct 18 2022 11:46:44 GMT+0900 (日本標準時)
console.log(now.getMinutes())
// -> 46

JavaScriptでの秒加算

秒の加算では「setSeconds」を使用します。

now.setSeconds(now.getSeconds() + 1)
console.log(now)
// -> Tue Oct 18 2022 11:46:45 GMT+0900 (日本標準時)
console.log(now.getSeconds())
// -> 45

 

JavaScriptでの月またぎ計算

次は月またぎです。Dateオブジェクトを使用すれば月末+1日の計算や、月初-1日の計算をしても勝手に月、年が変わってくれるため、月またぎの計算がとても簡単です。

月またぎ

2021年1月31日に1日足した場合は次のようになります。

まず、2021年1月31日のDateオブジェクトを生成します。Dateオブジェクトに(年、月、日)の引数を数値で指定します。なぜかわかりませんが月を設定するときは-1をします。(今回は1月を設定したいので0を指定)

let date=new Date(2021,0,31)
console.log(date)
// -> Sun Jan 31 2021 00:00:00 GMT+0900 (日本標準時)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2021年1月31日

次に、先に述べたように月の加算をします。ついでに減算もします。

date.setDate(date.getDate()+1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2021年2月1日
date.setDate(date.getDate()-1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2021年1月31日

月またぎの日の加算、減算をしても勝手に月の繰り上げ、繰り下げがされるのが確認できると思います。

年またぎ

年またぎも同様に行えます。

let date=new Date(2021,11,31)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2021年12月31日
date.setDate(date.getDate()+1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2022年1月1日
date.setDate(date.getDate()-1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日")
// -> 2021年12月31日

 

時間、分の繰り上げ、繰り下げも同様に行えます。

let date=new Date(2021,11,31,23,59,59)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+date.getHours()+"時"+date.getMinutes()+"分"+date.getSeconds()+"秒")
// -> 2021年12月31日 23時59分59秒

date.setSeconds(date.getSeconds()+1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+date.getHours()+"時"+date.getMinutes()+"分"+date.getSeconds()+"秒")
// -> 2022年1月1日 0時0分0秒

date.setSeconds(date.getSeconds()-1)
console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+date.getHours()+"時"+date.getMinutes()+"分"+date.getSeconds()+"秒")
// -> 2021年12月31日 23時59分59秒