在字符串中间添加一个字符
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。
【讨论】:
以上是关于在字符串中间添加一个字符的主要内容,如果未能解决你的问题,请参考以下文章