こんにちは、ばばーるです。
前回は今日の日付を取得する方法をご紹介しました。
今回は日付を操作する方法をご紹介します。
日付の操作

たぬきさん
今日の日付とかもいいんだけどさ
3日後とか1か月後とかの日付とか使いたいんだけど。

GAS
こんな感じでできるよ。
1. setDate()
function myFunction() {
const today = new Date();
const tomorrow = new Date(today.setDate(today.getDate() + 1));
//2行目
console.log(new Date(), tomorrow);
}
この場合のログは12月30日と12月31日になり1日後の同時刻の値を出力しました。
ログ出力
- Wed Dec 30 2020 19:12:20 GMT+0900 (日本標準時)
- Thu Dec 31 2020 19:12:20 GMT+0900 (日本標準時)
2行目の処理を詳しく書いていきます。
- today.getDate() + 1:まずはtoday.getDate()で30を取り出して1を足すことで31にします。
- today.setDate():先ほどの31をsetDate()で今日の日付に入力します。
- new Date(): このままだと、日付のフォーマットではなく数字です出力されしまうので、new Date()で日付フォーマットにします。
※月をまたぐ場合は日付を自動で調整します。例えば、今回の30に2を足した場合は1月1日を出力します。
2. setMonth()
function myFunction() {
const today = new Date();
const twomonthlater = new Date(today.setMonth(today.getMonth() + 1));
console.log(new Date(), twomonthlater);
}
1カ月後の1月30日が出力されます。
- Wed Dec 30 2020 19:36:21 GMT+0900 (日本標準時)
- Sat Jan 30 2021 19:36:21 GMT+0900 (日本標準時)
※2か月後にすると3月2日が出力されるので、+1は30日カウントとなります。
3. setFullYear()
function myFunction() {
const today = new Date();
const oneyearlater = new Date(today.setFullYear(today.getFullYear() + 1));
console.log(new Date(), oneyearlater);
}
1年後の12月30日が出力されます。
- Wed Dec 30 2020 19:46:02 GMT+0900 (日本標準時)
- Thu Dec 30 2021 19:46:02 GMT+0900 (日本標準時)
※365日カウントしているわけではないので、うるう年を含んでも日付が1日ずれることは、2月29日を除いてありません。2月29日に1年加えて出力すると3月1日となります。
まとめ
今回は日付を操作する方法をご紹介しました。
- getDate()/Month()/FullYear() ± で年月日を調整
- setDate()/Month()/FullYear()で 調整した日程を入力
- new Date()で日付の形式に変換