Bei der Berechnung des Zeitunterschieds in Sekunden in PHP durch die Konvertierung zweier Datumsangaben in Unix-Zeitstempel treten unvorhergesehene Ergebnisse auf.
P粉237029457
2023-09-03 09:22:01
<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>
问题是您使用的是不带参数的 date() 函数,请尝试使用这个:
输出: