2013-10-18 13 views
10

Có lẽ một giải pháp đơn giản cho điều này sẽ gây ra một facepalm. Tôi có thời gian được lưu trữ dưới dạng chuỗi dài 4 ký tự tức là 1300.Thêm một ký tự ở giữa một chuỗi

Tôi đang cố hiển thị chuỗi đó là 13:00. Tôi cảm thấy như có một giải pháp cho điều này là thanh lịch hơn những gì tôi đang làm vào lúc này.

Tôi hiện có:

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

Chuỗi sẽ luôn là 4 ký tự.

Trả lời

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

Edit:

Đây là một giải pháp chung cho vấn đề này:

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

Tùy chọn đầu tiên Emmm trả về 1:00 .. – Max

+0

Và trả về thứ hai "50: 0" nếu $ time = "500"; – Max

+0

phải được xem xét từ cuối – Max

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

sẽ làm cho 945 kết quả trong 9:45 và 1245 tại 00:45.

Các vấn đề liên quan