日付を取り扱う処理で前日や翌日、前月や翌月などを取得しようとすると、閏年の事も考えながら if 文などを使わなければならず、意外と面倒だ。
だったのだが、mktime() を使えば簡単に取得できる事が分かった(今さらで済みません orz)。
例えば今日の前日や翌日、あるいは前月や翌日は次の通り。
$yesterday = date('Y-m-d', mktime(0, 0, 0, date('n'), date('j') - 1, date('Y')); $tomorrow = date('Y-m-d', mktime(0, 0, 0, date('n'), date('j') + 1, date('Y')); $pastmonth = date('Y-m-d', mktime(0, 0, 0, date('n') - 1, date('j'), date('Y')); $nextmonth = date('Y-m-d', mktime(0, 0, 0, date('n') + 1, date('j'), date('Y'));
なお、mktime() の引数に負の値が使えるのは、Windows で PHP5.1 以降なので使う場合はご注意を。