3

了解しました。ミリ秒単位の整数をmysqlデータベースに送信します。今、私はそれが言うようにそれを作ろうとしています:再生時間:1日3時間15分。しかし、私はそれを行うのに苦労しています。私は分日と時間を取得することができますが、それは時間の合計であり、合計の日数と分であり、すべてが1つではありません。私はこのようなコードを持っています:

$time = $timeRow['time'];    
$seconds = floor($time / 1000);
$minutes = floor($seconds / 60);
$hours = floor($minutes / 60);
$days = round($hours / 24);
$milliseconds = $time % 1000;
$seconds = $seconds % 60;
$minutes = $minutes % 60;
echo'Time Played: '.$days.' days '.$hours.' hours '.$minutes.' minutes';

誰かが私がこれを修正するのを手伝ってもらえますか?

4

2 に答える 2

7
<?php

$time = $timeRow['time'] / 1000;

$days = floor($time / (24*60*60));
$hours = floor(($time - ($days*24*60*60)) / (60*60));
$minutes = floor(($time - ($days*24*60*60)-($hours*60*60)) / 60);
$seconds = ($time - ($days*24*60*60) - ($hours*60*60) - ($minutes*60)) % 60;

echo'Time Played: '.$days.' days '.$hours.' hours '.$minutes.' minutes '.$seconds.' seconds';

テスト:http ://codepad.viper-7.com/WBQQet

于 2012-08-24T17:54:17.253 に答える
-1

元の数値から各変数を生成しているため、1日35時間であることがわかります。1日11時間の代わりに。

値の減算を開始する必要があります。

$seconds = floor($time / 1000);
$minutes = floor($seconds / 60);
$hours = floor($minutes / 60);
$days = round($hours / 24);

for ($i = 0; $i < $days; $i++) {
    $hours -= 24;
}

そして、時間、分、秒の同様のコード。

于 2012-08-24T17:55:29.687 に答える