事始め
こういう計算式を見たことがないですか?
define('YEAR_SECONDS', 365 * 24* 60 * 60);
// 次の年を取得
$next_year = date('Y', time() + YEAR_SECONDS);
これを見て普通じゃね?って思った人はちょっと待って下さい
残念ながらこのコードは間違いです
簡単に反証出来るのでやってみましょう
反証
define('YEAR_SECONDS', 365 * 24* 60 * 60);
$lib_calc_seconds = strtotime('+48 years', 0);
$self_calc_seconds = 48 * YEAE_SECONDS;
echo($lib_calc_seconds - YEAR_SECONDS); // 1036800
差分が出ていますね。理由は簡単です
うるう年を考慮していないからです
万年カレンダーを作ったことがある人はすぐに分かったかもしれないですね
ではコードを修正してみましょう
修正
$next_year = date('Y', strtotime('+1 years'));
これだけです。むしろ簡単になりましたね
これなら何百年先でも差分は出ません
PHP万歳!
まとめ
今回の趣旨は面倒なことはライブラリに頼ろうということです
きっと自分で書くより正確で簡単です