Timestamp in Minuten?


01.06.2021, 19:45

Also, ich habe einen Timestamp, wann der Post erstellt wurde, nun möchte ich ausgeben, vor wie vielen Minuten der Post erschienen ist. Hier wurde er eben um 2021-06-01 17:34:06 erstellt. Also sollte um 18:00 Uhr 26min ago ausgegeben werden.

2 Antworten

// Ermittelt die vergangenen Min. der laufenden Stunde (34)
$pastMinutes = date('i', strtotime('2021-06-01 17:34:06'));

// Berechnet die verbleibenden Min. bis zur nächsten Stunde (26)
$leftMinutes = 60 - $pastMinutes;

// Ermittelt die aktuelle Stunde des Tages (17)
$currentHour = date('H', strtotime('2021-06-01 17:34:06'));

// Berechnet die nächste Stunde des Tages (18)
$nextHour = $currentHour + 1;

/*
 * Erzeugt die Ausgabe "Es sind noch 26 Minuten bis 18 Uhr".
 */
echo "Es sind noch ". $leftMinutes ." Minuten bis ". $nextHour ." Uhr";

Liebe Grüße

Niklas

Woher ich das weiß:Berufserfahrung

thanos2605 
Fragesteller
 01.06.2021, 18:57

Vielen Dank, aber ich meinte eigentlich etwas anderes. Ich schick dir mal den Source Code und die Seite, dann wirst du wissen was ich meine

0
thanos2605 
Fragesteller
 01.06.2021, 19:37

Also, ich habe einen Timestamp, wann der Post erstellt wurde, nun möchte ich ausgeben, vor wie vielen Minuten der Post erschienen ist. Hier wurde er eben um 2021-06-01 17:34:06 erstellt. Also sollte um 18:00 Uhr 26min ago ausgegeben werden. Ich hoffe du verstehst das :)

0

Wo kommt denn diese Zeitangabe her? Sofern du Einfluss darauf hast – bspw. wenn es einen Datenbankabfrage ist – dann kannst du dir gleich ein einfacher zu verarbeitendes Format liefern lassen.

Ansonsten wie Niklas schon schreibt mit strtotime(). Er hat dir ja schon den passende Ansatz geliefert.

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.

thanos2605 
Fragesteller
 01.06.2021, 19:25

Hier der code und die Website, dann wisrt du verstehen was ich meine :) : https://prnt.sc/13oew47

0
Babelfish  01.06.2021, 19:30
@thanos2605

Nein, verstehe ich nicht. Du musst halt den Code von Niklas an deine Ausgabe anpassen. Das ist kein großes Problem.

1
thanos2605 
Fragesteller
 01.06.2021, 19:36
@Babelfish

Also, ich habe einen Timestamp, wann der Post erstellt wurde, nun möchte ich ausgeben, vor wie vielen Minuten der Post erschienen ist. Hier wurde er eben um 2021-06-01 17:34:06 erstellt. Also sollte um 18:00 Uhr 26min ago ausgegeben werden. Ich hoffe du verstehst das :)

0
Babelfish  01.06.2021, 20:50
@thanos2605

Du hast eben keinen Timestamp, sondern einen formatierten String ohne Angabe der Zeitzone. Das ist eben ungünstig aber auf meine Frage woher das kommt willst du ja leider nicht antworten.

Deine Berechnung rein für die Minuten würde dann so aussehen:

date_default_timezone_set('Europe/Berlin');

$timestamp = strtotime('2021-06-01 17:34:06');
$pastTime = time() - $timestamp;

echo round($pastTime / 60)." min ago";

Das musst du dann an deine Ausgabe anpassen. Ich habe hier MEZ als Zeitzone genommen. Bei länger zurückliegenden Zeiten sieht das natürlich nicht mehr schön aus und man müsste noch Stunden und Tage mit ausgeben.

0
thanos2605 
Fragesteller
 01.06.2021, 21:03
@Babelfish

Super, vielen dank! Jetzt klappt es! Da ich noch Anfänger bin fände ich es nett wenn du mir zeigen könntest wie das mit den Studen und Tagen geht :)

0
thanos2605 
Fragesteller
 01.06.2021, 21:07
@Babelfish

Die Daten habe ich von meiner Datenbank (MySql) ;

0
Babelfish  02.06.2021, 08:30
@thanos2605

Ein Ansatz wäre der:

date_default_timezone_set('Europe/Berlin');

$timestamp = strtotime('2021-06-01 17:34:06');
$pastTime = time() - $timestamp;

$days = floor($pastTime / (60*60*24));

$pastTime -= $days*60*60*24;
$hours = floor($pastTime / (60*60));

$pastTime -= $hours*60*60;
$minutes = floor($pastTime / 60);


echo "$days days, $hours hours, $minutes min ago";

Und wenn die Daten aus einer Datenbank kommen, dann kannst du dir eben auch gleich einen Timestamp zurückliefern lassen:

SELECT UNIX_TIMESTAMP(created_at) …
1