<?php
 
function formatMilliseconds ($milliseconds) {
        $seconds = floor($milliseconds / 1000);
	$minutes = floor($seconds / 60);
        $hours = floor($minutes / 60);
        $days = floor($hours / 24);
 
        $milliseconds = $milliseconds % 1000;
        $seconds = $seconds % 60;
        $minutes = $minutes % 60;
        $hours = $hours % 24;
 
        $sortableformat = '%03ud:%02uh:%02um:%02us.%03ums';
        $readableformat = '%u days, %u hours, %u minutes, %u seconds, %u milliseconds';
        $format = $readableformat;
    	$time = sprintf($format, $days, $hours, $minutes, $seconds, $milliseconds);
        return ($time);
}
 
{
    	// Unit test.
 
	$milliseconds = 999999999;
 
      	echo formatMilliseconds( $milliseconds ), PHP_EOL;
}
?>