有没有办法在特定点将数字转换为包含文字的字符串?
示例:
700
将为7 minutes 00 seconds
60
将为60 seconds
140
将为1 minute 40 seconds
所以第三个数字会添加minutes
,而数字的开头总是seconds
我已经尝试了number_format($score, 2, "minutes ")
和其他变体,但它似乎无法正常工作,因为7000
将是70分00秒等等。
答案 0 :(得分:1)
是的,请使用substr
function minuteAndSeconds($string) {
switch (strlen($string)) {
case 1:
return '0' . $string . ' seconds';
case 2:
return $string . ' seconds';
case 3:
return substr($string, 0, 1) . ' minutes ' . substr($string, 1) . ' seconds';
default:
return 'Invalid string format';
}
}
该函数接受一个字符串并返回以您询问的方式格式化的字符串。
您必须将数字转换为字符串。 (例如$variable = (string) $variable
)
答案 1 :(得分:0)
我认为正则表达式是最好的选择,因为它可以是两个或三个(?)数字分钟 这将匹配两个最后的数字作为秒,以及之前的任何数字作为分钟。
$n = 700;
Preg_match("/(\d*)(\d{2})/", $n, $match);
Echo ($match[1] ?: 0) . " minutes and ". $match[2] . " seconds";
$n = 700;
Preg_match("/(\d*)(\d{2})/", $n, $match);
List($n, $minutes, $seconds) = $match;
Echo ($minutes ?: 0) . " minutes and ". $seconds . " seconds";