Количество PHP, добавление двоеточий каждые 2 символа

У меня есть эта строка

1010081-COP-8-27-20110616214459 

Мне нужно подсчитать последние 6 символов, начиная с конца этой строки (потому что она может длиться с самого начала)

Затем мне нужно добавить двоеточия после каждых двух символов.

Поэтому после подсчета 6 символов с конца это будет

 214459 

После добавления двоеточия это будет выглядеть так:

 21:44:59 

Можете ли вы помочь мне достичь этого?

Я не знаю, с чего начать!

спасибо

Вы можете сделать это с помощью substr , str_split и str_split

Код делается на нескольких строках для ясности, но может быть легко выполнен в цепочке на одной строке:

 $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); 
 echo preg_replace('/^.*(\d{2})(\d{2})(\d{2})$/', '$1:$2:$3', $string); 

Мне кажется, что эта строка имеет определенный формат, который следует анализировать на данные. Что-то вроде:

 sscanf($string, '%u-%3s-%u-%u-%u', $id, $type, $num, $foo, $timestamp); $timestamp = strtotime($timestamp); echo date('Ymd H:i:s', $timestamp); 

Если вы просто хотите время:

 $time = rtrim(chunk_split(substr($s,-6),2,':'),':'); 
 $final = "1010081-COP-8-27-20110616214459"; $c = substr($final, -2); $b = substr($final, -4, 2); $a = substr($final, -6, 2); echo "$a:$b:$c";