<?php
/**
* @param int $secs
*
* @return string
*/
function formatSeconds($secs) {
$secs = (int)$secs;
if ( $secs === 0 ) {
return '0 secs';
}
// variables for holding values
$mins = 0;
$hours = 0;
$days = 0;
$weeks = 0;
// calculations
if ( $secs >= 60 ) {
$mins = (int)($secs / 60);
$secs = $secs % 60;
}
if ( $mins >= 60 ) {
$hours = (int)($mins / 60);
$mins = $mins % 60;
}
if ( $hours >= 24 ) {
$days = (int)($hours / 24);
$hours = $hours % 60;
}
if ( $days >= 7 ) {
$weeks = (int)($days / 7);
$days = $days % 7;
}
// format result
$result = '';
if ( $weeks ) {
$result .= "{$weeks} week(s) ";
}
if ( $days ) {
$result .= "{$days} day(s) ";
}
if ( $hours ) {
$result .= "{$hours} hour(s) ";
}
if ( $mins ) {
$result .= "{$mins} min(s) ";
}
if ( $secs ) {
$result .= "{$secs} sec(s) ";
}
$result = rtrim($result);
return $result;
}
echo formatSeconds(0), "
";
echo formatSeconds(30), "
";
echo formatSeconds(300), "
";
echo formatSeconds(3000), "
";
echo formatSeconds(30000), "
";
echo formatSeconds(300000), "
";
echo formatSeconds(3000000), "
";
echo formatSeconds(30000000), "
";
Output:
0 secs
30 sec(s)
5 min(s)
50 min(s)
8 hour(s) 20 min(s)
3 day(s) 23 hour(s) 20 min(s)
4 week(s) 6 day(s) 53 hour(s) 20 min(s)
49 week(s) 4 day(s) 53 hour(s) 20 min(s)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…