我正在用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。
我该怎么做?
答案 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