Puxando um registro de data e hora de um feed XML com PHP, mas parece ser para muitos dígitos
-
21-09-2019 - |
Pergunta
Estou puxando um registro de data e hora de um feed e ele fornece 12 dígitos (1269088723811). Quando eu o converto, sai como
1901-12-13 20:45:52,
Mas se eu colocar o registro de data e hora em http://www.epochconverter.com/ sai como
Sáb, 20 de março de 2010 12:38:43 GMT, que é a hora correta.
epochconverter.com menciona que talvez em milissegundos, então eu alterei o script para cuidar dele usando
$mil = $timestamp;
$seconds = $mil / 1000;
$date = date('Y-m-d H:i:s', date($seconds));
Mas ainda converte a data errada, 1970-01-25 20:31:23.
O que estou fazendo errado?
Solução
Isso parece ser um aparado microtime () resultado. A única coisa que você parece estar fazendo de errado é usar date($seconds)
em vez do cru $seconds
. Tentar
$date = date('Y-m-d H:i:s', $seconds);
Outras dicas
$xml = new SimpleXMLElement('<foo><a>1269088723811</a></foo>');
echo date('Y-m-d H:i:s', (float)$xml->a / 1000);
e
$xml = new SimpleXMLElement('<foo><a>1269088723811</a></foo>');
$ts = substr($xml->a, 0, -3);
echo date('Y-m-d H:i:s', $ts);
ambos impressos 2010-03-20 07:38:43
(na minha máquina Europa/Berlim)