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

Susan Sarandon
Lepaskan: 2024-11-04 00:38:30
asal
557 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Output:

interval 1: 03:05
interval 2: 05:00
Total interval : 08:05
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!