1

フィードからタイムスタンプを取得すると、12 桁 (1269088723811) になります。変換すると、次のようになります

1901-12-13 20:45:52、

しかし、タイムスタンプをhttp://www.epochconverter.com/に入れると、次のようになります

Sat, 20 Mar 2010 12:38:43 GMT、これが正しい時刻です。

epochconverter.com はおそらくミリ秒単位であると述べているので、スクリプトを修正してそれを処理するようにしました

$mil = $timestamp;
$seconds = $mil / 1000;
$date = date('Y-m-d H:i:s', date($seconds));

しかし、それでも日付が間違って 1970-01-25 20:31:23 に変換されます。

私は何を間違っていますか?

4

2 に答える 2

2
$xml = new SimpleXMLElement('<foo><a>1269088723811</a></foo>');
echo date('Y-m-d H:i:s', (float)$xml->a / 1000);

$xml = new SimpleXMLElement('<foo><a>1269088723811</a></foo>');
$ts = substr($xml->a, 0, -3);
echo date('Y-m-d H:i:s', $ts);

両方が印刷2010-03-20 07:38:43されます(私のヨーロッパ/ベルリンのマシンで)

于 2010-03-21T14:01:23.320 に答える
2

これは、トリミングされたmicrotime()出力のようです。あなたが間違っていると思われる唯一のことdate($seconds)は、 raw の代わりに使用することです$seconds。試す

$date = date('Y-m-d H:i:s', $seconds); 
于 2010-03-21T13:02:35.173 に答える