2013-10-18 22 views
10

これには簡単な解決策があり、これはfacepalmを引き起こすでしょう。私は時間が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つの文字になります。

答えて

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

編集:

ここでは、この問題に対する一般的なソリューションです。

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

Emmm最初のオプションは1:00を返します。 – Max

+0

そして、$ time = "500"ならば "50:0"を返します。 – Max

+0

は、 – Max

6
implode(":",str_split($time,2)); 
1
substr_replace($yourVar, ':', -2, 0); 

12時45分に午前9時45分と1245年に945結果を行います。

関連する問題