2015-10-03 9 views
7

Ich habe diese 13-stellige Zeitstempel 1443852054000, die ich zu Datum und Uhrzeit konvertieren möchten aber gelingt nicht. Ich habe dieses Codes versucht:Wie ein 13-stellige Unix-Zeitstempel zu Datum und Uhrzeit konvertieren?

echo date('Y-m-d h:i:s',$item->timestamp); 

doesnt Arbeit für mich und auch diese

$unix_time = date('Ymdhis', strtotime($datetime)); 

und diese:

$item = strtotime($txn_row['appoint_date']); 
<?php echo date("Y-m-d H:i:s", $time); ?> 

was soll ich verwenden?

+1

ist es in Millisekunden

Mehr über php Datum und Uhrzeit. Entferne einfach die letzten drei Nullen und dein Code funktioniert. –

Antwort

10

obvioulsy ist dieser Zeitstempel in Millisekunden, nicht in Sekunden. Teilen Sie es mit 1000 und verwenden date Funktion:

echo date('Y-m-d h:i:s', $item->timestamp/1000); 
// e.g 
echo date('Y-m-d h:i:s',1443852054000/1000); 
// shows 2015-10-03 02:00:54 
+1

ich bekomme immer noch dieses Ergebnis 1970-01-01 01:00:00 –

+0

'var_dump ($ item-> timestamp);' –

+0

es ist Null mit var dump, funktioniert nicht –

1

Sie können dies erreichen mit DateTime::createFromFormat.

Da Sie eine timestamp mit 13 digits haben, werden Sie es durch 1000, um teilen müssen, um es zu benutzen mit DateTime, das heißt:

$ts = 1443852054000/1000; // we're basically removing the last 3 zeros 
$date = DateTime::createFromFormat("U", $ts)->format("Y-m-d h:i:s"); 
echo $date; 
//2015-10-03 06:00:54 

DEMO

http://sandbox.onlinephpfunctions.com/code/d0d01718e0fc02574b401e798aaa201137658acb


Sie können set the default timezone wollen alle Warnungen

date_default_timezone_set('Europe/Lisbon'); 

HINWEIS zu vermeiden: bei php the right way