Konvertieren Sie den Zeitstempel in lesbares Datum / Uhrzeit-PHP


226

Ich habe einen Zeitstempel in einer Sitzung gespeichert (1299446702).

Wie kann ich das in PHP in ein lesbares Datum / eine lesbare Uhrzeit umwandeln? Ich habe versucht, srttotime usw. ohne Erfolg.

Antworten:



84

strtotime macht aus einer Datumszeichenfolge einen Zeitstempel. Sie möchten das Gegenteil tun, nämlich das Datum . Das typische MySQL-Datumsformat lautet date('Y-m-d H:i:s'); Überprüfen Sie auf der Handbuchseite, was andere Buchstaben darstellen.

Wenn Sie einen Zeitstempel haben, den Sie verwenden möchten (anscheinend tun Sie dies), ist dies das zweite Argument von date().


4
Es wäre gut zu bemerken, dass ich in meinem aktuellen Datum wie folgt bestanden habe:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo

Gibt es keinen Befehl zum Konvertieren eines Zeitstempels in die Datums- / Uhrzeit-Standardisierung, da ich eine Datums- / Uhrzeit in einen Unix-Zeitstempel konvertiert habe, aber in meiner Datenbank ist es immer noch eine Datums- / Uhrzeit, die ich versuchen werde, aber ich finde es immer noch seltsam, dass es keinen bestimmten Befehl dafür gibt
Marc Roelse

64

Ich habe gerade H: i: s zu Rockets Antwort hinzugefügt, um die Zeit zusammen mit dem Datum zu ermitteln.

echo date('m/d/Y H:i:s', 1299446702);

Ausgabe: 03/06/2011 16:25:02



23

Wenn Sie PHP verwenden date(), können Sie diesen Code verwenden, um Datum, Uhrzeit, Sekunde usw. abzurufen.

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds

12
Wie wäre es mit Schaltjahr und Sekunde ...?
Petteri Hietavirta

$year = date('Y', $time)
Ruben Kazumov

16

Ich weiß, dass dies eine alte Frage ist, aber sie ist hoch in den Suchergebnissen.

Wenn jemand eine Zeitstempelkonvertierung direkt in ein DateTime-Objekt wünscht, gibt es einen einfachen Einzeiler:

$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);

Nach dem Kommentar von @sromero wird der Zeitzonenparameter (der dritte Parameter in DateTime :: createFromFormat ()) ignoriert, wenn ein Unix-Zeitstempel übergeben wird, sodass der folgende Code nicht erforderlich ist.

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

Weitere Informationen und Optionen finden Sie im PHP-Handbuch für DateTime :: createFromFormat .


1
Nur ein Kommentar zu Ihrer letzten Codezeile: Laut der von Ihnen verlinkten Handbuchseite: "Hinweis: Der Zeitzonenparameter und die aktuelle Zeitzone werden ignoriert, wenn der Zeitparameter entweder einen UNIX-Zeitstempel enthält (z. B. 946684800) oder eine Zeitzone angibt (z. B. 2010) -01-28T15: 00: 00 + 02: 00).
Sromero

@sromero Du hast recht. Der Zeitzonenparameter wird in diesem Fall ignoriert.
Pascal

14

Versuch es.

<?php
 $timestamp=1333342365;
 echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
 ?>

8

Sie können dies versuchen:

   $mytimestamp = 1465298940;

   echo gmdate("m-d-Y", $mytimestamp);

Ausgabe :

06-07-2016


8

Sofern Sie kein benutzerdefiniertes Datums- und Zeitformat benötigen, ist es einfacher, weniger fehleranfällig und besser lesbar, eine der integrierten Konstanten für das Datums- und Uhrzeitformat zu verwenden :

echo date(DATE_RFC822, 1368496604);

2
Dies sollte die beste Antwort sein.
Alexg

6

Probier diese:

echo date('m/d/Y H:i:s', 1541843467);

1
Hallo! Es scheint, dass diese Antwort bereits vorgeschlagen wurde; siehe die oberste Antwort.
Hat

4

echo date("l M j, Y",$res1['timep']);
Dies ist wirklich gut, um einen Unix-Zeitstempel zusammen mit dem Tag in ein lesbares Datum zu konvertieren. Beispiel: Donnerstag, 7. Juli 2016


1
Ähnliche Antworten wurden bereits veröffentlicht. Was ist das Plus an Informationen in Ihrer Antwort?
Steffen Harbich

4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);

4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

In den obigen Beispielen sind "r" und "Ymd H: i: s" PHP-Datumsformate, andere Beispiele:

Ausgabe formatieren

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.