Я пытаюсь конвертировать формат времени 00:00:00
в десятичном виде 0.00
,
Я попробовал это:
<?php
$hourswork_wk1 = $deposit26['hours_worked'];
$decimalHourswk1 = decimalHours($hourswork_wk1);
decimalHours();
function decimalHours($timewk1)
{
$hourswork_wk1 = explode(":", $timewk1);
return ($hourswork_wk1[0] + ($hourswork_wk1[1]/60) + ($hourswork_wk1[2]/3600));
echo $decimalHours
};?>
РЕДАКТИРОВАТЬ
<?php
$hourswork_wk1 = $deposit26['hours_worked'];
$decimalHourswk1 = decimalHours($hourswork_wk1);
function decimalHours($timewk1)
{
$hourswork_wk1 = explode(":", $timewk1);
return ($hourswork_wk1[0] + ($hourswork_wk1[1]/60) + ($hourswork_wk1[2]/3600));
}
?>
Я получаю вызов неопределенной функции decimalHours () с ошибкой. Что я делаю неправильно?
Хорошо по какой-то причине код, который я написал, никогда не работал для меня. Поэтому, оглянувшись на что-то более осязаемое, я наткнулся на Код Филиппа Нортона который работает как шарм с динамическими переменными. Одевают.
скрипт
<?php
//$week1hours = $deposit26['hours_worked'];
$week1hours = "14:33:38";
function time_to_decimal($time) {
$timeArr = explode(':', $time);
$decTime = ($timeArr[0] + ($timeArr[1]/60) + ($timeArr[2]/3600));
return $decTime;
}
echo time_to_decimal($week1hours);
?>
результат
14.560555555556
бонус: ограничение до 2 десятичных знаков
Используйте раунд, чтобы получить только 2 десятичных знака
<?php
//$week1hours = $deposit26['hours_worked'];
$week1hours = "14:33:38";
function time_to_decimal($time) {
$timeArr = explode(':', $time);
$decTime = ($timeArr[0] + ($timeArr[1]/60) + ($timeArr[2]/3600));
return $decTime;
}
$totalhours= time_to_decimal($week1hours);
echo round($totalhours, 2);
?>
результат
14.56
Других решений пока нет …