卡住试图弄清楚这里最好的算法。我有这个简单的功能,其中输入是秒:无效值的处理时间
function strTime($s) {
$d = intval($s/86400);
$s -= $d*86400;
$h = intval($s/3600);
$s -= $h*3600;
$m = intval($s/60);
$s -= $m*60;
if ($d) $str = $d . 'day ';
if ($h) $str .= $h . 'hr ';
if ($m) $str .= $m . 'min ';
if ($s) $str .= $s . 'sec';
return $str;
}
我喜欢这个,因为它只会显示需要什么。例如,如果秒数在3600,则此功能的输出将为“1小时”。
我的问题是,在某些情况下,秒数将是0(当他们开始使用产品时)。如何在这些情况下显示0秒,但在其他时间,如上面的例子中,我不想让它说“1小时0秒”。我正在努力想办法做到这一点。
让你用的情况下会 1)如果它是唯一的价值,即。 0,然后显示0秒 2.)如果有较大的值,则不显示0秒,即。 1小时,而不是1小时0秒 是吗? – ianace 2011-12-28 03:28:05
在串联使用之前定义'$ str'会更好,如果你没有一天你会发出警告! – 2011-12-28 03:31:59