PHPにて指定した期間内の合計日数を出力する方法
PHPにて開始日と終了日をユーザが入力すると、その期間内の合計日数を出力させたいというケースがあった。ループで回してカウントしても良いんだけど、ソースコードの見た目的に良くなく効率的とも思えないので他の方法を調べてみたところDateTime::diffを使用するのが良さそう。以下に方法をメモ。
利用方法
ソースコード
<?php
$start = new Datetime('2024-01-01');
$end = new Datetime('2024-01-07');
$diff = $start->diff($end);
var_dump($diff->days); //6
$start = new Datetime('2024-01-01');
$end = new Datetime('2024-12-31');
$diff = $start->diff($end);
var_dump($diff->days); //365(2024年はうるう年)
注意点
DateTime::diffは差を返すという挙動になり、開始日は含まれないような形になる。1/1~1/7の合計日数を7日間としてカウントするには+1する必要がある点に注意。
リファレンス
関連記事
-
-
PHPにてサイトにPayPay決済システム及び決済キャンセル機能を実装する方法
ここのところクレジットカード決済関連のメモを書いているが、他の決済方法についても ...
-
-
PHPからDBX Platformを利用してサーバ内のファイルをアップロードする方法
PHPで何らかのファイルを保存するようなケースだと今まではローカルに保存する、も ...
-
-
Google Maps APIとPHPを組み合わせて複数マーカーとウィンドウを連携させる方法
やりたかった事は以下の通り。 mysqlから経度緯度、マーカー名、マーカーIDを ...
-
-
PHPでランダムな値を取得したいケース諸々の対応方法
テストデータを作成する際にランダムな値を入れたかったけど、色々ケースがあったので ...
-
-
PHPで複数の送信先に一括でメールを送る方法
PHPで複数の送信先に一括でメールを送信したかった。配列とかで指定するのかと思っ ...