Как я могу преобразовать (строковую) метку времени в mysql datetime на Windows 32-битном PHP? - PullRequest
0 голосов
/ 30 декабря 2010

Я пытаюсь вызвать API LinkedIn и сохранить обновления сети. Каждое обновление имеет временную метку Unix, которую я извлекаю как строковую переменную из XML-ответа REST.

Я хочу преобразовать временную метку строки в формат даты / времени mysql. Функция date () принимает целое число в качестве второго аргумента времени для преобразования. Тем не менее, я использую 32-битный PHP для Windows и целочисленный тип для этой платформы ограничен 2147483647.

$timestamp = '1293714626675';  // sample pulled from linkedin
$timestamp = (int) $timestamp; // timestamp now equals 2147483647     
$mysqlDatetime = date('Y-m-d H:i:s', $timestamp);  // produces incorrect time

Есть ли лучший способ создания mysql datetime в PHP? Я понимаю, что могу преобразовать его после вставки в MySQL, однако это потребует изменения другого зависимого кода.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Ваша временная метка составляет микро секунд с эпохи UNIX. Разделите это число на 1000, и вы получите правильный результат.

0 голосов
/ 30 декабря 2010

Попробуйте это:

$ date = '1293714626675'; print_r (date_parse_from_format ("U", $ date));

также проверьте http://www.php.net/manual/en/datetime.createfromformat.php

...