Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Summe von Zeitvariablen in PHP, wenn sie sich über mehrere Tage erstrecken?

Wie berechnet man die Summe von Zeitvariablen in PHP, wenn sie sich über mehrere Tage erstrecken?

Barbara Streisand
Freigeben: 2024-10-27 15:24:02
Original
559 Leute haben es durchsucht

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

Berechnen der Summe von Zeitvariablen in PHP

In Ihrer PHP-Anwendung müssen Sie möglicherweise arithmetische Operationen an Zeitvariablen ausführen. Lassen Sie uns ein bestimmtes Szenario untersuchen, in dem Sie die Summe zweier Zeitvariablen ermitteln möchten, dargestellt als Zeichenfolgen im Format „HH:MM:SS“.

Frage:

Wie füge ich zwei Zeitvariablen in PHP hinzu?

Antwort:

Um zwei Zeitvariablen in PHP korrekt zu summieren, müssen wir sie mithilfe von in Unix-Zeitstempel konvertieren strtotime()-Funktion. Diese Konvertierung führt jedoch zu einer geringfügigen Diskrepanz. Insbesondere interpretiert die Funktion strtotime() Zeiten als innerhalb des aktuellen Tages liegend. Daher müssen wir bei der Umrechnung von zwei Zeiten, die zu unterschiedlichen Tagen gehören, einen der Zeitstempel anpassen, um eine korrekte Summe sicherzustellen.

Lösung:

  1. Konvertieren Sie $time1 und $time2 mit strtotime() in Unix-Zeitstempel.

    <code class="php">$timestamp1 = strtotime($time1);
    $timestamp2 = strtotime($time2);</code>
    Nach dem Login kopieren
  2. Berechnen Sie die Differenz zwischen den Sekunden, die sich $time1 und $time2 teilen. Diese Differenz kann berechnet werden, indem strtotime('00:00:00'), das Mitternacht darstellt, vom früheren Zeitstempel subtrahiert wird.

    <code class="php">$seconds_difference = min($timestamp1, $timestamp2) - strtotime('00:00:00');</code>
    Nach dem Login kopieren
  3. Passen Sie den früheren Zeitstempel an, indem Sie $ subtrahieren seconds_difference.

    <code class="php">if ($timestamp1 < $timestamp2) {
       $timestamp1 -= $seconds_difference;
    } else {
       $timestamp2 -= $seconds_difference;
    }</code>
    Nach dem Login kopieren
  4. Fügen Sie die angepassten Zeitstempel zusammen.

    <code class="php">$timestamp_sum = $timestamp1 + $timestamp2;</code>
    Nach dem Login kopieren
  5. Konvertieren Sie die Zeitstempelsumme zurück in „HH:MM: SS“-Format mit date().

    <code class="php">$result = date('H:i:s', $timestamp_sum);</code>
    Nach dem Login kopieren

Beispiel:

Verwendung der bereitgestellten Werte von $time1 = "15:20: 00“ und $time2 = „00:30:00“ ergibt die obige Lösung:

<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>
Nach dem Login kopieren

Daher ist die Summe von $time1 und $time2 „15:50:00“.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Summe von Zeitvariablen in PHP, wenn sie sich über mehrere Tage erstrecken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage