Adding a character in the middle of a string

不打扰是莪最后的温柔 提交于 2020-01-02 01:11:14

问题


There's probably a simple solution to this that will cause a facepalm. I have time stored as a 4 character long string ie 1300.

I'm trying to display that string as 13:00. I feel like there has to be a solution to this that is more elegant than what I'm doing at the moment.

I currently have:

$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;

The string will always be 4 characters long.


回答1:


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

Edit:

Here is a general solution to this problem:

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



回答2:


I favor this solution as it is just one function

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

http://php.net/substr_replace




回答3:


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



回答4:


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

Will make 945 result in 9:45 and 1245 in 12:45.



来源:https://stackoverflow.com/questions/19452392/adding-a-character-in-the-middle-of-a-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!