2012-03-20 4 views
0

私は、MP3メタデータからデータを読み込んで自動的に読み込むlib_getid3プロジェクトのスクリプトを使用して入力したMP3メタデータ(実際のMP3ファイルではない)それをSQLデータベースにインポートするので、 "title"、 "author"、 "fileformat"、およびannoyingly "playtime_seconds"を含む列があります。 PHPを使用してポッドキャスト用のSQL互換性のある時刻形式に秒単位で変換する

Iを出力することができ、それが原因で、「長さ」と「継続」タグのiTunesの互換性はありませんが、次のコードを使用して読めるポッドキャストなどのデータ:

<item> 
    <title><?=($test); ?></title> 
    <link>http://website/<?=basename(rtrim($row['filename'], '/')); ?></link> 

    <itunes:author><?=$row['artist']; ?></itunes:author><enclosure url="http://website/<?=basename(rtrim($row['filename'], '/')); ?>" length="<?=$row['playtime_seconds']?>" type="audio/mpeg" /> 
<itunes:category>podcast</itunes:category> 
    <pubDate><?=date('D, j M Y H:i:s O',$row{'LastModified'}) ?></pubDate> 


<itunes:keywords>Podcast</itunes:keywords> 
<itunes:duration><?=$row['playtime_seconds']; ?></itunes:duration> 
<guid isPermaLink="false"><?= substr($test, 0, strrpos($test, '.')); ?><?=$row['filesize'];?></guid> 

</item> 

しかし、時間は、秒単位であること検証されると無効な応答が返されます。分単位で、正の整数でなければなりません。 私は、たとえば、すでにここに提案のカップルを試してみた:

$seconds = $row['playtime_seconds'] % 60; 
    $time = ($row['playtime_seconds'] - $seconds)/60; 
    $minutes = $row['playtime_seconds'] % 60; 
    $hours = ($row['playtime_seconds'] - $minutes)/60; 

しかし、出力がiTunesに応じて、まだ有効ではありません。 インポートテーブルが読み込まれるたびに削除されるので、SQLテーブル自体に追加の行を追加することはできません。 PHPでそれを行うことは素晴らしいでしょう。

+0

を表示:分:秒のためにマット? – safarov

+0

私はそれが正しいフォーマットだと思っています。私がこれまでにiTunesを好きになっていない理由はわかりません。 – Phil

答えて

0

PHPでこれをしない理由はなく、いくつかの場所でこれを行う方法の例があります。

これらをチェックアウト: http://snipplr.com/view/4688/ http://www.laughing-buddha.net/php/sec2hms/

0

を私はあなただけのmysql

ためと仮定すると、時間と分

を表示したいです

select date_format('2010-12-01 11:2:2', '%H:%i'); 

//あなたが時間として秒を表示したいだけ 11時02

+0

それは数時間であれば本当にシンプルですが、分を秒と秒で表示したいと考えています。 これは日付ではなく、トラックの再生時間です。 – Phil

+0

これは私のために働いたものです: <?= date( "i:s"、$ number); ?> Phil

関連する問題