勉強したことのメモ.

Webエンジニア / プログラマが勉強したことのメモ。

PHPにて指定した期間内の合計日数を出力する方法

  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する必要がある点に注意。

 

リファレンス

https://www.php.net/manual/ja/datetime.diff.php

 - PHP

  関連記事

他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法

他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...

PHPバージョンアップの際に削除された関数(MySQL関数等)を使う方法
PHPバージョンアップの際に削除された関数(MySQL関数等)を使う方法

PHP5系で制作されたシステムを8系でも動くようにリプレイスしてほしいという案件 ...

PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法
PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法

セキュリティ等の問題によりaタグで直接リンクさせたくない、もしくはドキュメントル ...

PHPで指定したカラーコードの反対色を計算し、カラーコードとして出力する方法
PHPで指定したカラーコードの反対色を計算し、カラーコードとして出力する方法

あるシステム内でユーザが指定したカラーコードをCSSで指定した上で出力するという ...

PHP8系で「Warning: Constant xxxxx already defined in」エラーの対応方法
PHP8系で「Warning: Constant xxxxx already defined in」エラーの対応方法

PHP8系&WordPress6.4.3で「Warning: Const ...