Добавление символа в середину строки

вероятно, есть простое решение этого, которое вызовет facepalm. У меня есть время, хранящееся как 4-символьная длинная строка ie 1300.

Я пытаюсь отобразить эту строку в 13:00. Я чувствую, что должно быть решение, более элегантное, чем то, что я делаю в данный момент.

в настоящее время у меня есть:

$startTime = get_field($dayStart, $post->ID);
$endTime = get_field($dayEnd, $post->ID);

        for ($x=0; $x = 4; $x++){

            if(x == 2){
                $ST .= ':';
                $ET .= ':';
            } else {
                $ST .= $startTime[x];
                $ET .= $endTime[x];
            }

        }

$startTime = $ST;
$endTime = $ET;

строка всегда будет длиной 4 символа.

4 ответов


$time = "1300";    
$time = substr($time,0,2).':'.substr($time,2,2);

Edit:

вот общее решение этой проблемы:

function insertAtPosition($string, $insert, $position) {
    return implode($insert, str_split($string, $position));
}

Я предпочитаю это решение, поскольку это всего лишь одна функция

substr_replace('1300', ':', 2, 0);

http://php.net/substr_replace


implode(":",str_split($time,2));

substr_replace( $yourVar, ':', -2, 0 );

сделает результат 945 в 9: 45 и 1245 в 12: 45.