Mengira Jumlah Pembolehubah Masa dalam PHP
Dalam aplikasi PHP anda, anda mungkin menghadapi keperluan untuk melaksanakan operasi aritmetik pada pembolehubah masa. Mari terokai senario tertentu di mana anda ingin menentukan jumlah dua pembolehubah masa, diwakili sebagai rentetan dalam format "HH:MM:SS".
Soalan:
Bagaimanakah cara saya menambah dua pembolehubah masa dalam PHP?
Jawapan:
Untuk menjumlahkan dua pembolehubah masa dengan betul dalam PHP, kita perlu menukarnya kepada cap masa Unix menggunakan fungsi strtotime(). Walau bagaimanapun, penukaran ini memperkenalkan sedikit percanggahan. Khususnya, fungsi strtotime() mentafsir masa sebagai dalam hari semasa. Oleh itu, apabila menukar dua masa yang tergolong dalam hari yang berbeza, kita perlu melaraskan salah satu cap masa untuk memastikan jumlah yang betul.
Penyelesaian:
Tukar kedua-dua $time1 dan $time2 kepada cap waktu Unix menggunakan strtotime().
<code class="php">$timestamp1 = strtotime($time1); $timestamp2 = strtotime($time2);</code>
Kira perbezaan antara saat yang dikongsi oleh kedua-dua $time1 dan $time2. Perbezaan ini boleh dikira dengan menolak strtotime('00:00:00'), yang mewakili tengah malam, daripada cap masa yang lebih awal.
<code class="php">$seconds_difference = min($timestamp1, $timestamp2) - strtotime('00:00:00');</code>
Laraskan cap masa yang lebih awal dengan menolak $ perbezaan_saat.
<code class="php">if ($timestamp1 < $timestamp2) { $timestamp1 -= $seconds_difference; } else { $timestamp2 -= $seconds_difference; }</code>
Tambahkan cap masa yang dilaraskan bersama-sama.
<code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
Tukarkan jumlah cap masa kembali kepada "HH:MM: Format SS" menggunakan tarikh().
<code class="php">$result = date('H:i:s', $timestamp_sum);</code>
Contoh:
Menggunakan nilai yang disediakan $time1 = "15:20: 00" dan $time2 = "00:30:00", penyelesaian di atas akan menghasilkan:
<code class="php">$timestamp1 = strtotime('15:20:00'); // 55200 $timestamp2 = strtotime('00:30:00'); // 1800 $seconds_difference = min(55200, 1800) - strtotime('00:00:00'); // 1800 $timestamp1 -= $seconds_difference; // 55200 - 1800 = 53400 $timestamp_sum = $timestamp1 + $timestamp2; // 53400 + 1800 = 55200 $result = date('H:i:s', $timestamp_sum); // "15:50:00"</code>
Oleh itu, jumlah $time1 dan $time2 ialah "15:50:00".
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Pembolehubah Masa dalam PHP Apabila Ia Menjangkau Berbilang Hari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!