Skip to content

Instantly share code, notes, and snippets.

@nicklasos
Created April 18, 2014 10:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicklasos/11037272 to your computer and use it in GitHub Desktop.
Save nicklasos/11037272 to your computer and use it in GitHub Desktop.
<?php
/*
* Convert seconds to human readable text.
* Found at: http://csl.sublevel3.org/php-secs-to-human-text/
*
*/
function secs_to_h($secs)
{
$units = [
"week" => 7*24*3600,
"day" => 24*3600,
"hour" => 3600,
"minute" => 60,
"second" => 1,
];
// specifically handle zero
if ( $secs == 0 ) return "0 seconds";
$s = "";
foreach ( $units as $name => $divisor ) {
if ( $quot = intval($secs / $divisor) ) {
$s .= "$quot $name";
$s .= (abs($quot) > 1 ? "s" : "") . ", ";
$secs -= $quot * $divisor;
}
}
return substr($s, 0, -2);
}
$twig->addFilter(new Twig_SimpleFilter('secsToH', function ($secs) use ($app) {
return secs_to_h($secs);
}));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment