0

こんにちは皆さん、私は本当にphpが初めてで、xml配列からタイムスタンプを変換しようとしていますが、うまくいきません。見つけたものはすべて読みましたが、まだ方法を見つけることができます。

このコードを使用してxml API出力をデコードしています

$mysongs = simplexml_load_file('http://example.com/test/xml/');
$timestamp = $mysongs->item->timestamp;
$playtime = date("Y-d-m G-i-s",$timestamp);

$timestamp をエコーすると正常に動作しますが、$playtime は動作しません...

で試しました:

echo gmdate("Y-m-d", $timestamp);

&

echo date('Y-m-d H:i:s', $wra);

&

echo '<timeplayed>' . date('Y-m-d G:i:s', $mysongs->item->timestamp) . '</timeplayed>';

まだ運がありません..時間が表示されていません..この例を使用すると

echo '<timeplayed>' . date('Y-m-d G:i:s', (1365532902)) . '</timeplayed>';

それは正常に動作します..私はここで何が間違っていますか?

アップデート

最後に私はそれを見つけました.. euxneksが提案したように日付を適切にデコードするには、$timestampを整数としてキャストする必要がありました..

したがって、正しいコードは

$timestamp = intVal ($mysongs->item->timestamp);

その後

    $playtime = date("Y-d-m H-i-s",($timestamp));

そして最後にecho ($playtime);、それは正常に動作します...

返信ありがとうございます 問題が解決しました

4

2 に答える 2

0

あなたは間違いなくstrtotime機能を欠いています、ここに例があります:

$str = '04/09/2013';
$date = date('Y-m-d H:i:s',strtotime($str));

echo $date;

これは出力されます:

2013-04-09 00:00:00

更新しました

strtotime はすでに使用されているため、次を使用するのはどうですか:

$date = date('Y-m-d H:i:s', ($timestamp));
于 2013-04-09T19:31:19.507 に答える
0

結果を整数としてキャストする必要がある可能性があります (simplexml を使用してからしばらく経ちましたが、受け取った値が自動的に入力されないことは確かです)。

http://php.net/intval

また、strtotimeも機能する可能性があります:)

http://php.net/strtotime

于 2013-04-09T19:25:19.280 に答える