mktime好きな人多いな(苦笑
いわゆるサマータイムを使いたいなら別だけど,それこそstrtotime使ったほうが可読性が高いと思うんだけど.
1. $next = strtotime("+1 month");
のように現在のタイムスタンプからの計算では無く、この時点で年($y)と月($m)がわかっているのだから
1. $next = strtotime("+1 month", mktime(0, 0, 0, $m, 1, $y));
のようにして $y 年 $m 月1日のタイムスタンプで計算するのはどうでしょう?
これと等価な処理だとこういう感じでしょうか.
$next = strtotime('+1 month', strtotime("$y-$m-01"); // もしくは $next = strtotime("+1 month $y-$m-01"); // もしくは $next = strtotime("$y-$m-01 +1 month");
ついでに気になったので...
コードの他の部分を見ていませんので、ハズしているかも知れませんが、
form から得られた値を鵜呑みにして $y, $m に代入しているように思うのですが?
- 3000年とか、14月とかの値が与えられる事は有り得ませんか?
とか含めて上の例ももうちょっとちゃんと組んだほうがいいけど.