【PHP】年間会員システムの開始日と終了日を求める

年間会員の仕組みを作っていて
会員の有効期間をデータベースに登録するとします。

データベース登録後に送信するメールにも有効期間を記載するため、
SQLではなくPHPで開始日と終了日を求めることになりました。

PHPの日付関数で年間会員の開始日と終了日を計算します。

開始日は当日ではなく、当月の1日とします。これは簡単ですね。

終了日は1年後の前月の最終日、たとえば2017年4月15日に入会した場合の終了日は
2018年3月31日
になります。
このとき、単純に今日の日付をもとに計算してしまうと、
月末の31日などに入会した際に前後の月が30日までしかないことにより、結果がおかしくなってしまいます。
ですので、必ず「1日」を基準に計算するようにします。

長いですね。無駄がありそうな気がしないでもないですが。