Bei der Berechnung des Zeitunterschieds in Sekunden in PHP durch die Konvertierung zweier Datumsangaben in Unix-Zeitstempel treten unvorhergesehene Ergebnisse auf.
P粉237029457
P粉237029457 2023-09-03 09:22:01
0
1
630
<p>Gemäß dem Titel versuche ich, den Unterschied in Sekunden zu ermitteln und diese Sekunden dann in Tage und Stunden umzuwandeln. </p> <p>Nachdem ich ähnliche Fragen gelesen und befolgt hatte, habe ich eine Funktion erstellt, die die gewünschte Stunde, den Tag, die Woche, den Monat oder das Jahr zum heutigen Datum/Uhrzeit hinzufügt, und ich erhalte in diesem Teil die richtigen Ergebnisse. </p> <p> Allerdings habe ich dann versucht, die beiden Daten (Startdatum und Umzugsdatum) in Unix-Zeitstempel umzuwandeln, indem ich beide Zeitstempel subtrahierte, um die Differenz zwischen den beiden Daten in Sekunden zu ermitteln, und dann erhalte ich durch die Konvertierung nicht die erwarteten Ergebnisse für Tage oder Minuten (/86400 und /3600). </p> <p>Das ist der Code.</p> <pre class="brush:php;toolbar:false;"><?php $dateTimeNow = date(); Funktion dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) { $shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord")); $difference = strtotime($shifted)-strtotime($dateTimeIn); return $shifted . " } echo dateTimeShift($dateTimeNow, "1", "day"); ?></pre> <p>Das aktuelle Ergebnis ist...</p> <blockquote> <p>2023-01-04 09:37:51 > 19361 Tage oder 464673 Stunden</p> </blockquote> <p>Ich hatte erwartet, dass es so sein würde</p> <blockquote> <p>2023-01-04 09:37:51 > 1 Tag oder 24 Stunden</p> </blockquote></p>
P粉237029457
P粉237029457

Antworte allen(1)
P粉769413355

问题是您使用的是不带参数的 date() 函数,请尝试使用这个:

$dateTimeNow = date("Y-m-d H:i:s");

function dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) {
    $shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord"));
    $difference = strtotime($shifted)-strtotime($dateTimeIn);
    return $shifted . " <br> " . floor($difference/86400) . " days or " . floor($difference/3600) . " hours";
}

echo dateTimeShift($dateTimeNow, "1", "day");

输出:

2023-01-04 09:57:31 <br> 1 days or 24 hours
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage