Функция human_readable_duration()
в WordPress преобразует продолжительность, представленную в формате HH:ii:ss
или ii:ss
, в удобочитаемый текстовый формат. Это полезно, если необходимо отобразить длительность в форме, понятной для пользователя.
human_readable_duration( string $duration = ” ): string|false
human_readable_duration()
принимает строку, представляющую период времени, и конвертирует её в строку, содержащую количество часов, минут и секунд. Поддерживаются два формата:
- Часы, минуты и секунды:
HH:ii:ss
- Минуты и секунды:
ii:ss
Функция также обрабатывает отрицательные значения, если они были переданы, игнорируя знак минус.
Возвращаемое значение
Возвращает строку с описанием продолжительности в человеко-читаемом формате или false
, если конвертация не удалась.
1. Преобразование длительности в читаемый формат (Часы:Минуты:Секунды)
Если исходный период времени включает часы, минуты и секунды, функция выводит полное описание:
$duration = '5:30:15';
echo human_readable_duration( $duration );
// Вывод: "5 hours, 30 minutes, 15 seconds"
2. Преобразование длительности без указания часов (Минуты:Секунды)
Функция также поддерживает сокращенный формат, когда указаны только минуты и секунды:
$duration = '45:50';
echo human_readable_duration( $duration );
// Вывод: "45 minutes, 50 seconds"
3. Обработка отрицательных значений
Если перед временем стоит знак минус, функция игнорирует его и выводит положительное значение продолжительности:
$duration = '-2:05:35';
echo human_readable_duration( $duration );
// Вывод: "2 hours, 5 minutes, 35 seconds"
4. Использование в цикле для вывода нескольких временных меток
Функцию можно использовать в цикле, например, при отображении списка видео и их длительностей:
$durations = [ '1:30:45', '0:10:20', '45:00' ];
foreach ( $durations as $time ) {
echo human_readable_duration( $time ) . '<br>';
}
// Вывод:
// 1 hour, 30 minutes, 45 seconds
// 10 minutes, 20 seconds
// 45 minutes, 0 seconds
5. Пример преобразования секунд в человеко-читаемый формат
Чтобы преобразовать секунды в человеко-читаемую строку, сначала можно сконвертировать их в формат HH:ii:ss
, а затем использовать human_readable_duration()
:
$seconds = 3605; // 1 час и 5 секунд
$formatted_time = gmdate( 'H:i:s', $seconds );
echo human_readable_duration( $formatted_time );
// Вывод: "1 hour, 0 minutes, 5 seconds"
Важные замечания
- Проверка результата: Если функция не смогла обработать переданный аргумент, она вернет
false
, поэтому полезно добавить проверку на результат перед выводом. - Экранирование: При выводе результата на экран желательно использовать
esc_html()
для защиты от XSS-уязвимостей, если значение формируется на основе пользовательского ввода.
Заключение
Функция human_readable_duration()
делает вывод длительности удобным и понятным для пользователя, что улучшает восприятие информации и её представление на сайте.