i have function first case executed when $time
= 0
function time_spended($time){ switch($time){ case $time > (60*60*24*365): $time /= (60*60*24*365); return number_format($time, 2, '.', ',') . " year" . ($time > 1 ? "s":""); break; case $time > 60*60*24: $time /= 60*60*24; return number_format($time, 2, '.', ',') . " day" . ($time > 1 ? "s":""); break; case $time > 60*60: $time /= 60*60; return number_format($time, 2, '.', ',') . " hour" . ($time > 1 ? "s":""); break; case $time > 60: $time /= 60; return number_format($time, 2, '.', ',') . " minute" . ($time > 1 ? "s":""); break; default: return number_format($time, 2, '.', ',') . " seconds"; } }
for example:
echo time_spended(0); // 0.00 year
instead of:
0.00 seconds
function returns 0.00 year
(in other words, result first case
), because $time = 0
in switch
evaluates false
, , $time > (60*60*24*365)
true
returns result first branch, viz:
[0 == true] => [false == true] => [false]
to make work should use switch(true)
instead of switch($time)
, should work way shown below:
[true == (0 > 60*60*24*365)] => [true == true] => [false]