 Due to the nature of the web apps we build, we’re constantly working with time-related logic, and have built up a small collection of functions to help ease the pain with these calculations. This particular function is useful for breaking down a unit of time, represented in seconds, into its constituent days:hours:minutes:seconds, the former two of which are omitted if not applicable.

```/**
* Converts seconds into days:hours:minutes:seconds components
*
* @param int \$time - number of seconds
* @return string
*/

function time_quanta(\$time){
\$d = intval((\$time / 86400));
\$h = intval((\$time / 3600) % 24);
\$m = intval((\$time / 60) % 60);
\$s = intval(\$time % 60);

if(!max(\$d,\$h,\$m,\$s)) return false;
\$st = '';
if(\$d>0) \$st .= (\$d < 10?'0'.\$d:\$d).':';
if(\$h>0) \$st .= (\$h < 10?'0'.\$h:\$h).':';
\$st .= (\$m < 10?'0'.\$m:\$m).':';
\$st .= (\$s < 10?'0'.\$s:\$s);

return \$st;
}
```

The function can be particularly handy when you'd like to present debugging timers, which are usually counted in seconds or milliseconds (using time() or microtime() etc), in a more humanly readable format, especially if the times involved are long.

Written by
Geoff is the CTO and co-founder of GoSquared. He's the master of AWS and looks after all back-end services under the hood of GoSquared.