1

私はphpで1つのWebサイトを開発しています。

SQL Server 2008 データベースにジョブを追加する必要があります。

ジョブの所要時間を分単位で取っていますが、それを H:i:s 形式に変換したいと考えています。

私はこのコードを使用しています:

  $hours = (int)($duration / 60);
  $minutes = $duration - ($hours * 60);
  $time = $hours.":".$minutes;

int duration 30,60,100,120 などで正常に動作します。

ただし、期間が 1.33 または 5.40 の場合、出力はそれぞれ 00:01:30 または 00:05:40 になります。

これどうやってするの ?

4

6 に答える 6

1

これを試して

<?php
 $duration = "1.33";
 $hours    = (int)($duration / 60);
 $minutes  = $duration - ($hours * 60);   

  date_default_timezone_set('UTC');
  $date = new DateTime($hours.":".$minutes);
  echo $date->format('H:i:s');
?>

出力

00:01:33
于 2013-04-09T06:28:39.303 に答える
0

この方法を試してください

$time = 5.40;
$newtime = floatval($time);
echo number_format($newtime,2,':',null);
于 2013-04-09T05:56:53.670 に答える
0

数分かかっているので、このコードは完全に機能しています

$valueInMinutes = 135;

echo intval($valueInMinutes / 60);
echo " h ";
echo intval($valueInMinutes % 60);

そして出力します

2 h 15

日を管理する必要がある場合は、コードを次のように少し変更してください。

$value = 1505;

echo intval($value / 1440);
echo " day(s) ";
echo intval(($value % 1440) / 60);
echo " h ";
echo intval($value % 60);

出力します

1 day(s) 1 h 5
于 2013-04-09T05:55:15.583 に答える