我有一个PHP脚本,其格式为MMSSMS - Minutes Seconds Milliseconds,定义为$ time。我只需要一个:$ time中的每2个位置。任何帮助表示赞赏。
示例:$ message ='我参加了(MM:SS:MS)'。$ time。';
问题是$ time显示为000044而不是00:00:44 echo
答案 0 :(得分:2)
<?php
$time = '123456';
$str = strval($v);
$time = $str[0].$str[1].":".$str[2].$str[3].":".$str[4].$str[5];
echo $time;
?>
答案 1 :(得分:2)
此代码替换不在字符串末尾的2个连续数字,数字后跟冒号
$message = 'I clocked in (MM:SS:MS) '.preg_replace('/\d{2}(?!$)/','$0:',$time);
php.net/preg_replace
演示:http://sandbox.onlinephpfunctions.com/code/de0ce1e4466ff747f1bba2ac92331623a1b234ed
答案 2 :(得分:1)
您可以将chunk_split()与rtrim()
结合使用$time = '000044';
$time = rtrim(chunk_split($time, 2, ':'), ':');
修改强>
如果$time
是INT,则需要使用(string)$time
或strval($time)
进行转换。但是,在您的示例中,您使用的是000044
,因此我假设$time
已经是一个字符串......
答案 3 :(得分:1)
希望这会有所帮助:
$time = '001122';
$minutes = substr("$time", 0, 2);
$seconds = substr("$time", 2, 2);
$mills = substr("$time", 4, 2);
echo $newTime = "$minutes:$seconds:$mills";