HMFlol - 1 year ago 127
PHP Question

# How to convert a decimal into time, eg. HH:MM:SS

I am trying to take a decimal and convert it so that I can echo it as hours, minutes, and seconds.

I have the hours and minutes, but am breaking my brain trying to find the seconds. Been googling for awhile with no luck. I'm sure it is quite simple, but nothing I have tried has worked. Any advice is appreciated!

Here is what I have:

function convertTime(\$dec)
{
\$hour = floor(\$dec);
\$min = round(60*(\$dec - \$hour));
}

Like I said, I get the hour and minute without issue. Just struggling to get seconds for some reason.

Thanks!

If \$dec is in hours (\$dec since the asker specifically mentioned a decimal):

function convertTime(\$dec)
{
// start by converting to seconds
\$seconds = (\$dec * 3600);
// we're given hours, so let's get those the easy way
\$hours = floor(\$dec);
// since we've "calculated" hours, let's remove them from the seconds variable
\$seconds -= \$hours * 3600;
// calculate minutes left
\$minutes = floor(\$seconds / 60);
// remove those from seconds as well
\$seconds -= \$minutes * 60;
// return the time formatted HH:MM:SS
return lz(\$hours).":".lz(\$minutes).":".lz(\$seconds);
}

// lz = leading zero
function lz(\$num)
{
return (strlen(\$num) < 2) ? "0{\$num}" : \$num;
}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download