ホームページ > バックエンド開発 > PHPチュートリアル > PHP で 2 つの日付間隔を追加して合計時間を求める方法は?

PHP で 2 つの日付間隔を追加して合計時間を求める方法は?

Susan Sarandon
リリース: 2024-11-04 00:38:30
オリジナル
667 人が閲覧しました

How to Add Two Date Intervals in PHP to Find Total Time Duration?

PHP で 2 つの日付範囲を追加する方法

時間と分の合計期間を計算するために 2 つの日付範囲を追加することは、多くの質問で問題になりますPHPプログラマー向け。これを行う方法を理解してみましょう。

問題の説明

ユーザーは、時間と分の形式で合計期間を取得するために、次の方法で 2 つの日付間隔を追加したいと考えています:

<code class="php">$a = new DateTime('14:25');
$b = new DateTime('17:30');
$interval1 = $a->diff($b);
echo "interval 1 : " . $interval1->format("%H:%I");
echo "<br />";

$c = new DateTime('08:00');
$d = new DateTime('13:00');
$interval2 = $c->diff($d);
echo "interval 2 : " . $interval2->format("%H:%I");
echo "<br />";

echo "Total interval : " . ($interval1 + $interval2);</code>
ログイン後にコピー

質問の回答

PHP には演算子のオーバーロードがないため、オブジェクトにオブジェクトを追加するとき、PHP は最初にそれらを文字列に変換しようとしますが、DateInterval はこの操作をサポートしていません。

この問題を解決するには、別のメソッドを使用する必要があります:

  1. 新しい DateTime オブジェクトを作成します: 参照点として使用する新しい DateTime オブジェクトを作成します。
  2. add 関数を使用して間隔を追加します。 add 関数を使用して、新しい DateTime オブジェクトに 2 つの間隔を追加します。
  3. 参照ポイントとの差を表示します: 最後に、新しい DateTime オブジェクトと参照ポイントの差を表示して、合計期間を取得します。

コード例

上記のメソッドを使用したコード例を次に示します:

<code class="php">$a = new DateTime('14:25');
$b = new DateTime('17:30');
$interval1 = $a->diff($b);
echo "interval 1: " . $interval1->format("%H:%I") . "\n";

$c = new DateTime('08:00');
$d = new DateTime('13:00');
$interval2 = $c->diff($d);
echo "interval 2: " . $interval2->format("%H:%I") . "\n";

$e = new DateTime('00:00');
$f = clone $e;
$e->add($interval1);
$e->add($interval2);
echo "Total interval : " . $f->diff($e)->format("%H:%I") . "\n";</code>
ログイン後にコピー

出力:

interval 1: 03:05
interval 2: 05:00
Total interval : 08:05
ログイン後にコピー

代替アプローチ (カスタム DateInterval)

さらに詳しく知りたい場合は、独自の DateInterval 拡張機能を作成し、加算演算を再定義することも検討できます。これはより高度なアプローチであり、PHP 拡張機能の開発についての深い理解が必要です。

以上がPHP で 2 つの日付間隔を追加して合計時間を求める方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート