ProfiPHPProfiPHP
Категория: Полезное в PHP

Удаление секунд из даты, представленной в виде строки в PHP

Представим ситуацию, имеется время в строковом формате: 10:20:30. Необходимо отобразить время без секунд, то есть так: 10:20.

В программировании всегда можно найти несколько решений, которые мы опишем.

Опишем самый большой и сложный вариант (исключительно для ознакомительных целей).

1. Разбить строку на массив с помощью разделителя ":". (Функция Explode)

2. Извлечь последний элемент массива. (Функция Array_pop)

3. Объединить элементы массива в строку. (Функция Implode)

Пример:
$time = '10:20:30';
$arTime = explode( ":", $time );
array_pop( $arTime );
$time = implode( ':', $arTime); // 10:20
Можно сделать еще проще одним движением:
echo substr( $time, 0, 5 );
Данный вариант можно использовать при условии, что всегда будет поддерживаться формат записи 00:00:00.

Можно использовать класс DateTime в объектно-ориентированном стиле:
$date = new DateTime( $time );
echo $date->Format( 'H:i' ); // 10:20
Также аналогичный код, только в процедурном стиле:
echo date_create( $time )->Format( 'H:i' ); // 10:20
Также можно выполнить данную задачу с помощью функции Strtotime:
$date = strtotime( $time );
echo date( 'H:i', $date ); // 10:20
Как видно из примеров, вариантов решения задачи с форматированием даты существует несколько. Выбирайте наиболее вам подходящий.

Добавить комментарий

Имя:
Текст комментария: