我正在开发一个php网站。
我需要添加作业到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。
try this
<?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
使用DateInterval类如果你运行的是PHP> 5.3.0:
$interval = new DateInterval('100 minutes');
$interval->format('%H:%I:%S'); // prep for MySQL database.
当您花费几分钟时,这段代码正在完美地工作
$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
您可以使用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
希望这对你有帮助
试试这个
$time = 5.40;
$newtime = floatval($time);
echo number_format($newtime,2,':',null);
试试这个
echo $time = date("H:i:s", strtotime($hours)) . ":" . date("H:i:s", strtotime($minutes));
01:33:00 : 05:40:00