2012-07-14 23 views
5

tengo la siguiente marca de tiempo:Linux marca de tiempo a PHP

1342259667654 

que cuando se convierte con http://www.epochconverter.com/ da:

Assuming that this timestamp is in milliseconds: 
GMT: Sat, 14 Jul 2012 09:54:27 GMT 
Your time zone: 14. juli 2012 11:54:27 GMT+2 

Y ese es el momento correcto, pero cuando se utiliza:

echo date("Y-m-d H:i:s", 1342259667654); 

Recibo la siguiente fecha:

1904-07-24 10:22:47 

¿Cómo puedo obtener con PHP la fecha exacta de esta marca de tiempo?

+0

desea la fecha actual o qué? –

+0

¿Solo quitar los últimos 3 caracteres me dio el resultado correcto? es decir 1342259667 – SmokeyPHP

+4

DERP ... es porque esa marca de tiempo es milisegundos, PHP date() usa segundos, por lo que necesita dividir por 1000 – SmokeyPHP

Respuesta

6

Su marca de tiempo debe ser dividido por 1000:

echo date("Y-m-d H:i:s", 1342259667654/1000); 
+0

Gracias @davidethell, se perdió esa parte. – Adnan

0

El valor 1342259667654 es en realidad en milisegundos, mientras que la función de PHP date() es incapaz de manejar valor de milisegundos. De ahí la salida extraña.

2
$timestamp = 1342259667; 
$dt = new DateTime("@$timestamp"); // convert UNIX timestamp to PHP DateTime 
echo $dt->format('Y-m-d H:i:s'); 

También puede hacerlo de esta manera.

Cuestiones relacionadas