PHP计数,每2个字符添加冒号

Die*_*oP. 9 php add count

我有这个字符串

1010081-COP-8-27-20110616214459
Run Code Online (Sandbox Code Playgroud)

我需要计算从该字符串结尾开始的最后6个字符(因为它可能从开始时开始很长)

然后我需要在每2个字符后添加冒号.

因此,从最后计算6个字符后它将是

214459
Run Code Online (Sandbox Code Playgroud)

添加冒号后,它将如下所示:

21:44:59
Run Code Online (Sandbox Code Playgroud)

你能帮我实现吗?

我真的不知道从哪里开始!

谢谢

Exp*_*lls 17

你可以用substr,str_splitimplode

为清晰起见,代码在多行上完成,但可以在一行中轻松完成:

$str = '1010081-COP-8-27-20110616214459';
//Get last 6 chars
$end = substr($str, -6);
//Split string into an array.  Each element is 2 chars
$chunks = str_split($end, 2);
//Convert array to string.  Each element separated by the given separator.
$result = implode(':', $chunks);
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 13

echo preg_replace('/^.*(\d{2})(\d{2})(\d{2})$/', '$1:$2:$3', $string);
Run Code Online (Sandbox Code Playgroud)

它看起来像我那个字符串有一个特殊的格式,你应该解析成数据.就像是:

sscanf($string, '%u-%3s-%u-%u-%u', $id, $type, $num, $foo, $timestamp);
$timestamp = strtotime($timestamp);
echo date('Y-m-d H:i:s', $timestamp);
Run Code Online (Sandbox Code Playgroud)