2

テーブルに合計秒の値がありますが、次のような時間形式を取得したいと思いますhh:mm:ss。現在、たとえば次のseconds - 226ようになっています。これは4分26秒の時間形式である必要がありますが、次のコードを試しました。

$seconds = 226;
$hours = floor($seconds / 3600);
$mins = floor(($seconds - ($hours*3600)) / 60); 
$secs = floor(($seconds - ($hours*3600)) - ($mins*60));

そしてこの出力3:46

多分式に何か問題がありますか?

編集:私はビデオの長さを返すYouTubeスクリプトからこの値を取得しました:

    $ytvidid = $url;
$ytdataurl = "http://gdata.youtube.com/feeds/api/videos/". $ytvidid;
$feedURL = $ytdataurl;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feedURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// get the result of http query
$output = curl_exec($ch);
curl_close($ch);
// feed the curl output to simplexml_load_string
$sxml = simplexml_load_string($output) or die("XML string not loading");

//$sxml = simplexml_load_file($feedURL);
$media = $sxml->children('http://search.yahoo.com/mrss/');
// get <yt:duration> node for video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
    echo $attrs['seconds'];
4

3 に答える 3

6

gmdate関数を使用します。フォーマットコードはhttp://php.net/manual/en/function.date.phpで表示できます。

echo gmdate("H:i:s", $seconds);

PS。あなたの方法はすでに機能しています。226秒は3分46秒になります。

于 2013-01-07T03:47:09.283 に答える
1

あなたはこれを使うことができます..youtube時間のようなこのコード

$total_secs = '15454';

//time settings
$hours = floor($total_secs / 3600);
$mins = floor(($total_secs - ($hours*3600)) / 60);
$secs = floor($total_secs % 60);

//if hours zero, give for nothing like that (45:05)     
if ($hours<1) { $hours = ''; } else { $hours = $hours.':'; }
if ($mins<10) { $mins = '0'.$mins.':'; } else { $mins = $mins.':'; }
if ($secs<10) { $secs = '0'.$secs; } else { $secs = $secs; }

echo $output = $hours.$mins.$secs; //
于 2014-06-18T02:47:26.143 に答える
0

Supericyの答えは良いですが、24時間しか機能せず、1日以上必要な場合は、次のようになります。

$diffInSeconds = 64;
$h =  floor($diffInSeconds / 3600);
$m =  floor(($diffInSeconds - ($h * 3600)) / 60);
$s =  floor(($diffInSeconds - (($h * 3600) + $m * 60)));

echo sprintf('%02d', $h) . ":" . sprintf('%02d', $m). ":" . sprintf('%02d', $s);

ところで、あなたの計算は大丈夫です。しかし、私はこの方法を選びます。

于 2018-08-21T01:18:52.710 に答える