我有一个秒的时间功能,我想总是将分钟和秒值输出为两位数。换句话说,5
将成为05
。我在函数中使用了sprintf
,但它没有做任何事情。这些值仍以单个数字形式返回。
//convert seconds to time
function convertSeconds($seconds)
{
// extract hours
$hours = floor($seconds / (60 * 60));
// extract minutes
$divisor_for_minutes = $seconds % (60 * 60);
$minutes = floor($divisor_for_minutes / 60);
// extract the remaining seconds
$divisor_for_seconds = $divisor_for_minutes % 60;
$seconds = ceil($divisor_for_seconds);
// return the final array
$obj = array(
"h" => (int) $hours,
"m" => (int) sprintf("%02d", $minutes),
"s" => (int) sprintf("%02d", $seconds)
);
return $obj;
}
答案 0 :(得分:1)
施法时遇到sprint()
而不是变量的问题,请尝试
$obj = array(
"h" => (int)$hours,
"m" => sprintf("%02d", (int)$minutes),
"s" => sprintf("%02d", (int)$seconds)
);
答案 1 :(得分:0)
如果将转换删除为整数,sprintf
函数将正确格式化数字:
$obj = array(
"h" => (int) $hours,
"m" => sprintf("%02d", $minutes),
"s" => sprintf("%02d", $seconds)
);
在十进制表示中,整数不能以零开始(只有整数的十六进制,八进制和二进制表示可以以零开头)。