PHP: Zwei Current_Timestamps berechnen?
Hi Leute!
Ich versuche grad zwei verschiedene Current Timestamps zu berechnen, um zu ermitteln, wie viel Zeit zwischen den beiden vergangen ist. Wie genau kann ich das berechnen? (das ganze sollte im SQL Timestamp Format sein)
(Format: 0000-00-00 00:00:00)
LG
3 Antworten
Ich würde das Ganze in einen UNIX-Timestamp konvertieren und dann davon die Differenz ausrechnen.
$timestamp1 = strtotime('2010-05-17 19:13:37');
$timestamp2 = strtotime('2017-10-13 11:17:57');
//unterschied in sekunden:
$unterschied = $timestamp2 - $timestamp1;
//in leserliche Zeit ausgeben
$hours = floor($unterschied / 3600);
$mins = floor($unterschied / 60 % 60);
$secs = floor($unterschied % 60);
$timeFormat = sprintf('%02d:%02d:%02d', $hours, $mins, $secs);
"$timeFormat" ist dann der die Differenz im leserlichen Format (00:00:00).
Hi,
vorab, du kannst es auch gleich im SQL statement schreiben. Spart dann den PHP-Code.
Beispiel:
SELECT * FROM `your_table` WHERE (TIMESTAMPDIFF(SECOND, `timestamp_field`, NOW()) < 3600);
Das holt alle records der letzten Stunde.
Alternativ kannst du diese Zeitangabe auch direkt aus dem SQL rausholen um dann mit PHP schon mit dem fertigen Zeitunterschied arbeiten:
SELECT *, TIMESTAMPDIFF(SECOND, `datums_spaltenname`, NOW()) AS `timediff` FROM `your_table`;
Damit könntest du dann mit PHP direkt auf
$record["timediff"];
zugreifen.
Geht mit reinem PHP natürlich auch, kannst du dir direkt auf Stackoverflow abschauen, da ist es bereits super erklärt: https://stackoverflow.com/a/12382882
- https://www.php.net/manual/de/function.date-diff.php
- https://www.php.net/manual/de/datetime.format.php (s. dazu das erste Beispiel)