Date型の加減算を行うサンプルです。
日時の加減算を行うサンプル
Dateオブジェクトの日時の加算/減算を行うには、+(プラス)/-(マイナス)で行えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//今日日付のDateオブジェクトを生成する var dt = new Date(); //年を +1 する(1年後) dt.setFullYear(dt.getFullYear() + 1); //月を +3 する(3か月後) dt.setMonth(dt.getMonth() + 3); //日を -5 する(5日前) dt.setDate(dt.getDate() - 5); //時間を +2 する(2時間後) dt.setHours(dt.getHours() + 2); //分を -15 する(15分前) dt.setMinutes(dt.getMinutes() - 15); //秒を +30 する(30秒後) dt.setSeconds(dt.getSeconds() + 30); |
解説
- JavaScriptには日時を加減算するメソッドが無いため、getメソッドで取得した値を加減算して、それをsetメソッドでセットすることで加減算を実現します。
月末日に対する月の加減算の結果について
月末日に対して月の加算/減算を行った時の結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//2016年10月31日に1カ月加算 var dt = new Date(2016, 9, 31); var result = dt.setMonth(dt.getMonth() + 1); →2016/12/01 ※2016/10/31 +1か月→2016/11/31→2016/12/01 となるようです。 //2016年10月31日に1カ月減算 var dt = new Date(2016, 9, 31); var result = dt.setMonth(dt.getMonth() - 1); →2016/10/01 ※2016/10/31 -1か月→2016/09/31→2016/10/01 となるようです。 //2017年02月28日に1カ月加算 var dt = new Date(2017, 1, 28); var result = dt.setMonth(dt.getMonth() + 1); →2017/03/28 ※2017/02/28 +1か月→2017/03/28 月末日であっても関係ありません。 //2017年02月28日に1カ月減算 var dt = new Date(2017, 1, 28); var result = dt.setMonth(dt.getMonth() - 1); →2017/01/28 ※2017/02/28 -1か月→2017/01/28 月末日であっても関係ありません。 |
解説
- JavaScriptの月の加減算では、月末日であっても特に意識せずそのまま加減算されます。