こんにちは、Ryohei(@ityryohei)です!

本記事では、PHPのDateTimeで翌日~指定日(2週間、1ヵ月)までの日付を出力する方法をご紹介しています。

PHPで翌日から指定日までの期間の日付を出力したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

DateTimeで指定日後の日付を取得するには

DateTimeでは、相対的な書式を使って指定日後の日付を取得することができます。例えば1日後、1週間後、1ヵ月後、1年後等を指定する場合は下記のように記述します。

<?php

new DateTime('+1 day'); //1日後
new DateTime('+1 week'); //1週間後
new DateTime('+1 month'); //1ヵ月後
new DateTime('+1 year'); //1年後

他にも便利な書式が用意されていますので、詳しくは下記をご参照ください。

参考:https://www.php.net/manual/ja/datetime.formats.relative.php

本記事では、上記の書式を使って、翌日から指定日後までの日付を出力してみたいと思います。出力する間隔は1日単位とし、繰り返し処理で日付を出力します。

DateTimeで翌日~指定日までの日付を出力する

下記が指定日までの日付を出力するプログラムです。開始日と終了日を指定して繰り返し処理で日付を出力します。

<?php

$start = 1; //開始日(翌日)
$end = 14; //終了日(14日後)

for($i = $start; $i <= $end; $i++){

    $dateTime = new DateTime('+'.$i.' day');
    echo $date = $dateTime->format('Y年m月d日(w)').'<br>';

}

実行結果は下記の通りです。(実行日は2022年6月1日です。)

実行結果

2022年06月02日(4)
2022年06月03日(5)
2022年06月04日(6)
2022年06月05日(0)
2022年06月06日(1)
2022年06月07日(2)
2022年06月08日(3)
2022年06月09日(4)
2022年06月10日(5)
2022年06月11日(6)
2022年06月12日(0)
2022年06月13日(1)
2022年06月14日(2)
2022年06月15日(3)

実行結果を確認すると、実行日を基準に翌日~指定日(14日後)までの日付が日単位で出力されています。曜日に関しては曜日番号を出力しているだけですので、日本の曜日を表示する必要がある場合は、別途配列を用意して出力していただければと思います。

最後に

私事ですが、最近久しぶりにPHPでミニマムなシステムを構築しています。ロジックを考えるのが楽しくて、1日の経過がとても早く感じます。フレームワークでゴリゴリ開発するのも楽しいですが、一から設計して、ロジックを考えて、コーディングして、デバッグして、フルスクラッチにしかない面白さもありますよね。一人で開発するのはとても良い刺激になりますので、もっと個人開発に時間を割いてもいいかもしれませんね!

以上、PHPのDateTimeで翌日~指定日(2週間、1ヵ月間後等)までの日付を出力する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。