如何计算PHP中总分钟的小时,分​​钟和秒?

时间:2013-04-09 05:50:43

标签: php

我正在用PHP开发一个网站。

我需要将作业添加到sql server 2008数据库。

我在几分钟内完成工作时间,我想将其转换为H:i:s格式。

我正在使用此代码:

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

在int持续时间为30,60,100,120等时工作正常。

但如果持续时间为1.33或5.40,则输出应分别为00:01:30或00:05:40。

我该怎么做?

6 个答案:

答案 0 :(得分:2)

如果您正在运行PHP>请使用DateInterval类; 5.3.0:

$interval = new DateInterval('100 minutes');
$interval->format('%H:%I:%S');  // prep for MySQL database. 

答案 1 :(得分: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

答案 2 :(得分:0)

你可以使用php date功能:

$hours = (int)($duration / 60);
$minutes = $duration - ($hours * 60);
$time = date("H:i:s", strtotime($hours.":".$minutes));
echo $time;

有关date的更多信息,请访问http://php.net/manual/en/function.date.php

希望这会有所帮助:)

答案 3 :(得分:0)

试试这种方式

$time = 5.40;
$newtime = floatval($time);
echo number_format($newtime,2,':',null);

答案 4 :(得分:0)

试试这个

echo $time = date("H:i:s", strtotime($hours)) . ":" . date("H:i:s", strtotime($minutes));

<强>输出

01:33:00 : 05:40:00

答案 5 :(得分:0)

试试这个

<?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