JavaScriptで来月の今日を計算します.
784 ワード
もっと読む
製品の要求が特殊なので、自分でカレンダーを作りました.2014.0.31日に発見され、来月の今日を計算する時に問題が発生しました.問題のあるコードは以下の通りです.
なぜなら、today.set Monthの実行中の+1は、実際には当月の日数で計算されているからです.
todayのunixタイムスタンプに31日間プラスされたので、12月1日です.
解決策:
製品の要求が特殊なので、自分でカレンダーを作りました.2014.0.31日に発見され、来月の今日を計算する時に問題が発生しました.問題のあるコードは以下の通りです.
var today = new Date();
today.setMonth(today.getMonth() + 1);
var nextMonthToday = today;
nextMonthToday Mon Dec 01 2014 22:33:03 GMT+0800 ( )
なぜなら、today.set Monthの実行中の+1は、実際には当月の日数で計算されているからです.
todayのunixタイムスタンプに31日間プラスされたので、12月1日です.
解決策:
var date = today.getDate(); //
today.setDate(1); // 1
today.setMonth(today.getMonth() + n); //n 1
today.setDate(Math.min(date, getDaysInMonth(today))); // getDaysInMonth(today) n , 10 31 11 30