14

可能有一个简单的解决方案会导致面部手掌。我将时间存储为 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 个字符长。

4

4 回答 4

26
$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));
}
于 2013-10-18T14:41:10.483 回答
18

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

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

http://php.net/substr_replace

于 2015-10-17T16:30:29.810 回答
6
implode(":",str_split($time,2));
于 2013-10-18T14:49:58.813 回答
4
substr_replace( $yourVar, ':', -2, 0 );

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

于 2017-01-28T21:39:07.573 回答