爆炸时间戳并添加:每2个位置

时间:2014-06-25 06:59:02

标签: php

我有一个PHP脚本,其格式为MMSSMS - Minutes Seconds Milliseconds,定义为$ time。我只需要一个:$ time中的每2个位置。任何帮助表示赞赏。

示例:$ message ='我参加了(MM:SS:MS)'。$ time。';

问题是$ time显示为000044而不是00:00:44 echo

4 个答案:

答案 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)$timestrval($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";