2013-02-18 4 views
1

Я вызываю функцию с удаленного сервера, которая выводит меня в формате XML. Обрабатывая его с PHP и декодирование с JSON (json_decode) Я получаю следующий вывод:Как получить дату (Ymd His) из JSON, которая форматирует/Date()/

print_r($data); дает ..

StdClass Object ([CreatedDate] =>/Дата (1360641338000-0600)/[DateOfBirth] = >/Дата (1360558800000-0600) /)

Как я могу получить CreatedDate в формате Y-m-d H:i:s?

Спасибо!

+2

Проверьте это http://stackoverflow.com/questions/3339140/json-date-object-to-php-date?rq=1 – Rikesh

+0

Почему вы обрабатываете XML как JSON? – Leri

+0

@PLB не спрашивайте об этом. Я знаю, что мог использовать SimpleXML, но теперь я нахожусь в положении, которое я не могу изменить :( – MagExt

ответ

0

Получил это решение, обратившись к другому решению SO, как указал Рикеш в его комментарии. Измените его немного, чтобы соответствовать моему требованию. Я отвечаю на это просто, чтобы помочь какой-то расстроенной душе приземлиться здесь, чтобы найти решение.

$startDate = $data->CreatedDate; 
preg_match('/([\d]{10})/', $startDate, $matches); 

$sd = date('Y-m-d H:i:s', $matches[0]); 
$startDate = date('Y-m-d H:i:s', strtotime($sd) - 3600 * 6); //adding 6 hours to match server's time 
1

JSON не имеет конкретных данных типа данных. Используемый вами API, похоже, возвращает строку, которая ожидает, что вы будете eval в JavaScript.

Вам нужно обработать строку, чтобы удалить Date( и ) частей, а затем разделить на - (и, возможно, также на +) и вычесть (или добавить) на с другой стороны. Затем вы можете использовать стандарт date and time functions.