Created
January 2, 2013 16:34
-
-
Save jtarleton/4435891 to your computer and use it in GitHub Desktop.
Helper to convert seconds to hours, minutes, and seconds
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//credit: Jon Haworth at laughing-buddha.net (I added the $asArray param) | |
function sec2hms ($sec, $padHours = false, $asArray = false) | |
{ | |
// start with a blank string | |
$hms = ""; | |
// do the hours first: there are 3600 seconds in an hour, so if we divide | |
// the total number of seconds by 3600 and throw away the remainder, we're | |
// left with the number of hours in those seconds | |
$hours = intval(intval($sec) / 3600); | |
// add hours to $hms (with a leading 0 if asked for) | |
$hms .= ($padHours) | |
? str_pad($hours, 2, "0", STR_PAD_LEFT). ":" | |
: $hours. ":"; | |
// dividing the total seconds by 60 will give us the number of minutes | |
// in total, but we're interested in *minutes past the hour* and to get | |
// this, we have to divide by 60 again and then use the remainder | |
$minutes = intval(($sec / 60) % 60); | |
// add minutes to $hms (with a leading 0 if needed) | |
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ":"; | |
// seconds past the minute are found by dividing the total number of seconds | |
// by 60 and using the remainder | |
$seconds = intval($sec % 60); | |
// add seconds to $hms (with a leading 0 if needed) | |
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT); | |
// done! | |
return ($asArray) ? explode(':', $hms) : $hms; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment