日記
足し算・引き算 (21:51)Edit

MMの日付選択ドロップダウンリストをJavaScriptで操作し、「現在設定より1日前」「今日」「現在設定より1日後」に変更するボタンを作ろうと思った。

var day = form.date_day.options[form.date_day.selectedIndex].value;
day -= 1;

なんてすると、年月日の日の部分が1日前になるんで、あとはDateクラスに桁あふれ(0日とか32日とか)のつじつまを合わせてもらってから、書き戻してOK。

じゃあ、その逆に1日進める方は、

var day = form.date_day.options[form.date_day.selectedIndex].value;
day += 1;

なんてしたところ、なぜか1日ではなく不定の数十〜数百日が加算されていってしまう。なじぇ?

しばらくはまってから、ようやく気がついた。dayがStringだから、それに+1する処理は文字列結合になって、たとえば"30"日だったら次は"301"日になるのね。intで計算させればいいのか。javascriptのcastがよくわからなかったんで、ひとまず、

day = day - 0 + 1;

としてみた。

Published At2004-08-30 00:00Updated At2004-08-30 00:00