PHPで指定日付の翌日の日付を取得する方法

こんにちは、さるまりんです。

簡単なことなんですがPHPで「翌日」の日付を取得する方法です。

まずは次の日をYYYY-MM-DDの書式で取得するにはこんな風にします。

$tTomorrow = strtotime('tomorrow');
echo date('Y-m-d', $tTomorrow) . "\n";

この投稿の公開日(2023年6月26日)に実行すると

2023-06-27

と表示されます。

では次は指定された日付の翌日を取得してみます。
4月の最終日を指定してみます。
欲しいのは翌日5月の1日です。

$given = '2023-04-30';
$tNextDay = strtotime($given . ' +1 day');
echo date('Y-m-d', $tNextDay) . "\n";

実行すると

2023-05-01

が表示されました。OKですね。

上で'[日付の文字列] +1 day'で日付を与えましたが、2つ目の引数としてタイムスタンプを渡すこともできます。
なので冗長ですがこんな記述も可能です。

$given = '2023-04-30';
$tNextDay = strtotime('+1 day', strtotime($given));
echo date('Y-m-d', $tNextDay) . "\n";

strtotime()、文字列から日時への関数、便利です。
他にも様々なものが取れます。

strtotime()

前日をとるにはstrtotime('yesterday')
翌日をとるにはstrtotime('tomorrow')

「今」をとるにはstrtotime('now')なのですが、PHPのドキュメントを見ると「無視される」みたいですね。

strtotime('Monday next week')で「翌週の月曜日」がとれたり、
strtotime('last day of February next year')で「翌年の2月末日」がとれたり、
上でやったように'+1 day'で翌日が取れるように、'+/-N day/month/year'等計算した値がとれたりといろいろ。

うまく使ってプログラムを効率よくプログラムを書きたいと思います。

読んでくださってありがとうございました。

それではまた!