HMFlol - 7 months ago 73
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);
}