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.

Adamski
quelle

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().

Explosionspillen
quelle
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

Razan Paul
quelle
49
$timestamp = 1465298940;
$datetimeFormat = 'Y-m-d H:i:s';

$date = new \DateTime();
// If you must have use time zones
// $date = new \DateTime('now', new \DateTimeZone('Europe/Helsinki'));
$date->setTimestamp($timestamp);
echo $date->format($datetimeFormat);

Ergebnis: 2016-06-07 14:29:00

Andere Zeitzonen:

Stanislav Malomuzh
quelle
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
Rahul Dadhich
quelle
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 .

Pascal
quelle
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);
 ?>
Neil Dhakal
quelle
8

Sie können dies versuchen:

   $mytimestamp = 1465298940;

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

Ausgabe :

06-07-2016

Pratik Mehta
quelle
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);
Bischof
quelle
2
Dies sollte die beste Antwort sein.
Alexg
6

Probier diese:

echo date('m/d/Y H:i:s', 1541843467);
Sunnitisch Ha
quelle
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

Harry Singh
quelle
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);
Rote Ouane
quelle
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
SM Imtiaz Hussain
quelle