Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengira Jumlah Pembolehubah Masa dalam PHP Apabila Ia Menjangkau Berbilang Hari?

Bagaimana untuk Mengira Jumlah Pembolehubah Masa dalam PHP Apabila Ia Menjangkau Berbilang Hari?

Barbara Streisand
Barbara Streisandasal
2024-10-27 15:24:02457semak imbas

How to Calculate the Sum of Time Variables in PHP When They Span Multiple Days?

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:

  1. Tukar kedua-dua $time1 dan $time2 kepada cap waktu Unix menggunakan strtotime().

    <code class="php">$timestamp1 = strtotime($time1);
    $timestamp2 = strtotime($time2);</code>
  2. 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>
  3. Laraskan cap masa yang lebih awal dengan menolak $ perbezaan_saat.

    <code class="php">if ($timestamp1 < $timestamp2) {
       $timestamp1 -= $seconds_difference;
    } else {
       $timestamp2 -= $seconds_difference;
    }</code>
  4. Tambahkan cap masa yang dilaraskan bersama-sama.

    <code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
  5. 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!

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