おそらくこれには簡単な解決策があり、フェイスパームを引き起こします。時間は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);
編集:
この問題の一般的な解決策を次に示します。
function insertAtPosition($string, $insert, $position) {
return implode($insert, str_split($string, $position));
}
implode(":",str_split($time,2));
substr_replace( $yourVar, ':', -2, 0 );
945は9:45、12:45は1245になります。