Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menambah Dua Selang Tarikh dalam PHP untuk Mencari Jumlah Tempoh Masa?

Bagaimana untuk Menambah Dua Selang Tarikh dalam PHP untuk Mencari Jumlah Tempoh Masa?

Susan Sarandon
Susan Sarandonasal
2024-11-04 00:38:30559semak imbas

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

Cara menambah dua julat tarikh dalam PHP

Menambah dua julat tarikh untuk mengira jumlah tempoh jam dan minit adalah masalah untuk banyak Soalan untuk pengaturcara PHP. Mari cuba fahami cara melakukan ini.

Perihalan Masalah

Pengguna ingin menambah dua selang tarikh dengan cara berikut untuk mendapatkan jumlah tempoh dalam format jam dan minit:

<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>

Jawapan Soalan

PHP tidak mempunyai operator lebih muatan, jadi apabila menambah objek dengan objek, PHP akan cuba menukarnya kepada rentetan, tetapi DateInterval tidak menyokong operasi ini.

Untuk menyelesaikan masalah ini, kita perlu menggunakan kaedah lain:

  1. Buat objek DateTime baharu: Buat objek DateTime baharu untuk digunakan sebagai titik rujukan .
  2. Gunakan fungsi tambah untuk menambah selang: Gunakan fungsi tambah untuk menambah dua selang pada objek DateTime baharu.
  3. Tunjukkan perbezaan dari titik rujukan: Akhir sekali, tunjukkan perbezaan antara objek DateTime baharu dan titik rujukan untuk mendapatkan jumlah tempoh.

Contoh Kod

Berikut ialah contoh kod menggunakan kaedah di atas:

<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>

Output:

interval 1: 03:05
interval 2: 05:00
Total interval : 08:05

Pendekatan alternatif (DateInterval tersuai)

Jika anda ingin pergi lebih dalam, anda juga boleh mempertimbangkan untuk membuat sambungan DateInterval anda sendiri dan mentakrifkan semula operasi penambahan. Ini adalah pendekatan yang lebih maju yang memerlukan pemahaman yang mendalam tentang pembangunan sambungan PHP.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Dua Selang Tarikh dalam PHP untuk Mencari Jumlah Tempoh Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn