在字符串中间添加一个字符

Posted

技术标签:

【中文标题】在字符串中间添加一个字符【英文标题】:Adding a character in the middle of a string 【发布时间】:2013-10-27 11:00:07 【问题描述】:

可能有一个简单的解决方案可以解决这个问题。我将时间存储为 4 个字符的长字符串,即 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 个字符长。

【问题讨论】:

【参考方案1】:
$time = "1300";    
$time = substr($time,0,2).':'.substr($time,2,2);

编辑:

这里是这个问题的一般解决方案:

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

【讨论】:

如果 $time = "500"; 则秒返回 "50:0"; 必须从末尾考虑 @Ethan 良好的语气是一种通用的解决方案。但你应付了任务:) 您在编辑中编写的自定义函数有一个本机 php 函数,请参阅下面的答案。 当位置为零时,您的一般解决方案会发生什么情况?或者当字符串的长度比位置大几倍时? ... :)【参考方案2】:

我喜欢这个解决方案,因为它只是一个功能

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

http://php.net/substr_replace

【讨论】:

【参考方案3】:
implode(":",str_split($time,2));

【讨论】:

【参考方案4】:
substr_replace( $yourVar, ':', -2, 0 );

将在 9:45 生成 945,在 12:45 生成 1245。

【讨论】:

以上是关于在字符串中间添加一个字符的主要内容,如果未能解决你的问题,请参考以下文章

编写html中如何将中间某一个字符改变字体颜色?

shell 如何取文本中 指定两个字符中间的内容

使用 .NET 在文件中间添加一行

shell 如何取本本文件中 指定两个字符中间的内容呢?

回文字符串

添加字符判断是否为回文串