PHP count, добавьте двоеточия каждые 2 символа
у меня есть эта строка
1010081-COP-8-27-20110616214459
мне нужно подсчитать последние 6 символов, начиная с конца этой строки (потому что это может быть долго, начиная с начала)
затем мне нужно добавить двоеточие через каждые 2 символа.
Итак, после подсчета 6 символов с конца, он будет
214459
после добавления двоеточий это будет выглядеть так:
21:44:59
можете ли вы помочь мне достичь этого?
Я не очень знайте, с чего начать!
спасибо
4 ответов
вы можете сделать это с помощью substr
, str_split
и implode
код выполняется на нескольких строках для ясности, но может быть легко выполнен в цепочке на одной строке:
$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})$/', '::', $string);
мне кажется, что эта строка имеет определенный формат, который вы должны проанализировать в данные. Что-то вроде:
sscanf($string, '%u-%3s-%u-%u-%u', $id, $type, $num, $foo, $timestamp);
$timestamp = strtotime($timestamp);
echo date('Y-m-d H:i:s', $timestamp);
$final = "1010081-COP-8-27-20110616214459";
$c = substr($final, -2);
$b = substr($final, -4, 2);
$a = substr($final, -6, 2);
echo "$a:$b:$c";