public function _sec2time($sec)
{
$res = '';
if ($sec < 0) {
$sec = -$sec;
$res = '-' . $res;
}
if ($sec != floor($sec)) {
$msec = round(($sec - floor($sec)) * 1000);
$msec = '.' . str_pad($msec, 3, '0', STR_PAD_LEFT);
$sec = floor($sec);
} else {
$msec = '';
}
$hours = floor($sec / 3600);
$min = floor(($sec - $hours * 3600) / 60);
$sec = $sec - $hours * 3600 - $min * 60;
if ($hours > 0) {
$res .= str_pad($hours, 2, '0', STR_PAD_LEFT) . ':';
}
if ($hours > 0 || $min > 0) {
$res .= str_pad($min, 2, '0', STR_PAD_LEFT) . ':';
}
$res .= str_pad($sec, 2, '0', STR_PAD_LEFT) . $msec;
return $res;
}