2012-04-06 8 views

Antwort

234

Try this:

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

Bitte nicht das 'gmdate()' gibt das Datum/die Uhrzeit in GMT zurück. 'date()' gibt das lokale Datum/die lokale Uhrzeit zurück. –

+4

Der obige Kommentar macht in diesem Zusammenhang keinen Sinn. Die Verwendung von Datum mit dem zweiten Parameter als Zeitstempel, wie in Antwort gezeigt, wird das Datum in der lokalen Zeitzone nicht drucken. Das Datum wird gedruckt, wobei die Zeitzoneninformationen ignoriert werden, da der Zeitstempel keine Zeitzoneninformationen enthält. gmdate und date mit dem zweiten Zeitstempelparameter wie 1333699439 werden dieselbe Datumzeit drucken. –

+0

@MattK: Was sinnvoll ist, da Z UTC angeben. Tinus: Unix-Zeitstempel enthalten keine Zeitzonenoffsets. Die Ausgabe von "date" und "gmdate" unterscheidet sich je nach der TZ-Variablen (mindestens bei * nix) –

92

Verwendung Datumsfunktion date (string $format [, int $timestamp = time() ])

Verwenden date('c',time()) als Format ISO 8601 (hinzugefügt in PHP 5) zu konvertieren - 2012-04-06T12:45:47+05:30

Verwendung date("Y-m-d\TH:i:s\Z",1333699439)2012-04-06T13:33:59Z

Hier sind einige der Formate Datum zu erhalten Funktion unterstützt

<?php 
$today = date("F j, Y, g:i a");     // March 10, 2001, 5:16 pm 
$today = date("m.d.y");       // 03.10.01 
$today = date("j, n, Y");      // 10, 3, 2001 
$today = date("Ymd");       // 20010310 
$today = date('h-i-s, j-m-y, it is w Day');  // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. 
$today = date("D M j G:i:s T Y");    // Sat Mar 10 17:16:18 MST 2001 
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');  // 17:03:18 m is month 
$today = date("H:i:s");       // 17:16:18 
?> 
+0

Wie kann ich bestimmte Zeitstempel mit 'c' konvertieren? zum Beispiel 1333699439 –

+1

Datum ('c', 1333699439) –

+0

das hat Ihr Problem gelöst? –

38

Angenommen, Sie Wenn Sie PHP5.3 verwenden, dann ist die moderne Art, Daten zu verarbeiten, die native DateTime class. Um die aktuelle Zeit zu erhalten Sie nur

$currentTime = new DateTime(); 

aufrufen kann, um ein Datetime-Objekt aus einem bestimmten Zeitstempel (dh nicht jetzt) ​​

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

Um eine formatierte Zeichenfolge zu erstellen erhalten Sie dann rufen

$formattedString = $currentTime->format('c'); 

Siehe manual page here

+1

Wie kann ich bestimmte Zeitstempel mit diesem konvertieren? zum Beispiel 1333699439 –

+0

@Norse Natürlich lese ich seinen Beitrag. Alle Informationen, die er brauchte, waren in meinem Post. Er musste lediglich die PHP-Dokumente für das DateTime-Objekt lesen. Ich habe meinen Beitrag bearbeitet, um ihn noch klarer zu machen. Das DateTime-Objekt ist der Weg in PHP und alle Neulinge sollten ermutigt werden, es zu benutzen. Bis jetzt bin ich der Einzige, der diese Antwort gegeben hat. Übrigens finde ich deinen Kommentar etwas aggressiv und nicht ganz im Sinne von SO. – liquorvicar

+0

@Ahmetvardar Siehe meine Bearbeitung, obwohl das alles in den PHP-Dokumenten ist, zu denen ich einen Link zur Verfügung gestellt habe. Ich fordere Sie dringend auf, das DateTime-Objekt zu verwenden. Es bietet eine ausgezeichnete Unterstützung für Termine einschließlich Zeitzonen etc. – liquorvicar

5
$unixtime_to_date = date('jS F Y h:i:s A (T)', $unixtime); 

Dies sollte arbeiten.

11

Es ist sehr wichtig, um eine Standard-Zeitzone einzustellen, das korrekte Ergebnis

<?php 
// set default timezone 
date_default_timezone_set('Europe/Berlin'); 

// timestamp 
$timestamp = 1307595105; 

// output 
echo date('d M Y H:i:s Z',$timestamp); 
echo date('c',$timestamp); 
?> 

Online Umwandlung Hilfe zu erhalten: http://freeonlinetools24.com/timestamp

+1

In ISO8601 wird 'Z' verwendet, um anzuzeigen, dass es sich um eine UTC-Zeit handelt, daher sollte die Zeitzone auf' UTC' gesetzt werden –

1
<?php 
$timestamp=1486830234542; 
echo date('Y-m-d H:i:s', $timestamp/1000); 
?> 
0

fand ich die Informationen in diesem Gespräch so hilfreich, dass ich wollte nur hinzufügen, wie ich es mithilfe der Zeitstempel aus meiner MySQL-Datenbank herausgefunden und ein wenig PHP

<?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?> 

Der Ausgang war: 2017-03-03T08: 22: 36 + 01: 00

Vielen Dank Stewe Sie antworteten war ein Eureka für mich.