JavaScriptの日時の扱いについて発見がありました。
//日付と時間の設定
now = new Date();
として日付を取得すると、今日は8/31です。
次に
year = 2010;
mon = 9;
day = 1;
として9/1に日時を設定するため、下記の処理をします。
//タイマーの時間
now.setYear(year);
now.setMonth(mon-1);
now.setDate(day);
nowの値は10/1になってしまいます。
これは、setMonthを実行した時点で「9/31」となり、これが「10/1」と解釈されてしまうためです。
事前に
now.setDate(1);
を実行することで回避できます。
リファレンス本や解説サイトを見てもこのような手順は踏まず、ただ順番に年月日をあてがっていますので、月と日数の関係でこのようなズレが月末で生じます。注意が必要です。
現在カウントダウンタイマーを制作中です。
http://www.shurey.com/js/timer/countdown.html