введите символ в строку, после 2-го символа - PullRequest
1 голос
/ 31 января 2012

Я извлекаю значения из базы данных, которая содержит военное время как 1330 (не спрашивайте, почему)

Я хочу преобразовать 1330 в 13:30, а затем запустить strtotime, чтобы превратить 13:30:00 в 13:30

.

У меня есть блок писателей о том, как я могу поместить двоеточие: между 2 и 3 символами, в 1330

Ответы [ 4 ]

5 голосов
/ 31 января 2012

Один очевидный способ - использовать substr:

$time = "1330";
$new_time = substr($time, 0, 2) . ':' . substr($time, 2);

Другое решение: preg_replace:

$time = "1330";
$new_time = preg_replace('/(\d{2})(\d{2})/', '\1:\2', $time);

Также возможно str_split:

$time = "1330";
$new_time = implode(':', str_split($time, 2));
3 голосов
/ 31 января 2012

Ленивый путь:

chunk_split('1330', 2, ':') . '00';
1 голос
/ 31 января 2012

Вы можете сделать это, используя:

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

Но почему вы разбиваете. В 13:30 вы можете напрямую получить результат:

echo date("h:i a",strtotime(1330));

Второй вариант даст вам результат быстрее. Зачем тратить время на разделение.

Надеюсь, это поможет:)

1 голос
/ 31 января 2012

Должно быть в состоянии просто сделать:

$time = '1330';
$part_a = substr($time, 0, 2);
$part_b = substr($time, 2, 2);

$new_time = $part_a . ':' . $part_b;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...