1

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ではこれを取得します:1957年9月14日ではなく1982年4月19日

何か案は???

4

1 に答える 1

2

正規表現は負の符号を削除しているため、UNIXエポック(1970年1月1日)の前ではなく、後の日付になります。次のようなものを試してください。

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

あなたはそれがデモで働いているのを見ることができます。

于 2012-08-01T13:55:10.920 に答える