Преобразование MysQl Time в десятичный формат

Я пытаюсь конвертировать формат времени 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 () с ошибкой. Что я делаю неправильно?

1

Решение

Хорошо по какой-то причине код, который я написал, никогда не работал для меня. Поэтому, оглянувшись на что-то более осязаемое, я наткнулся на Код Филиппа Нортона который работает как шарм с динамическими переменными. Одевают.

скрипт

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]