Ответ 1
$time = "1300";
$time = substr($time,0,2).':'.substr($time,2,2);
Edit:
Вот общее решение этой проблемы:
function insertAtPosition($string, $insert, $position) {
return implode($insert, str_split($string, $position));
}
Вероятно, это простое решение, которое вызовет 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 символа.
$time = "1300";
$time = substr($time,0,2).':'.substr($time,2,2);
Edit:
Вот общее решение этой проблемы:
function insertAtPosition($string, $insert, $position) {
return implode($insert, str_split($string, $position));
}
Я одобряю это решение, поскольку это всего лишь одна функция
substr_replace('1300', ':', 2, 0);
implode(":",str_split($time,2));
substr_replace( $yourVar, ':', -2, 0 );
Будет результат 945 в 9:45 и 1245 в 12:45.