将json日期转换为PHP时出错(m/d/Y)


error when converting json date to PHP (m/d/Y)

我试图将JSON字符串转换为PHP的DOB,它可以工作,但给了我错误的DOB。

$url = "test.js";
$content = file_get_contents($url);
$json = json_decode($content, true);
$DOB = date('m/d/Y', preg_replace('/[^'d]/','', $json['Player'][BirthDt])/1000);

得到JSONJason的是:

"BirthDt":"'/Date(-388094400000)'/"

在PHP中,我得到的是:1982年4月19日而不是1957年9月14日

有什么想法吗???

您的正则表达式正在删除负号,因此它将成为unix epoch(1970年1月1日)之后的日期,而不是之前的日期。试试这样的东西:

preg_match('/Date'((-?'d+)')/', $json['Player']['BirthDt'], $matches);
$timestamp = $matches[1];
$DOB = date('m/d/Y', $timestamp / 1000);

你可以在演示中看到它的工作原理。