human_readable_duration() WP 5.1.0
Конвертирует период в формате HH:ii:ss или ii:ss в читаемый формат.
Хуков нет.
Возвращает
Строку/false. Строку в удобочитаемом формате или false при неудачном конвертировании.
Использование
human_readable_duration( $duration );
- $duration(строка)
- Период/срок в формате
HH:ii:ss
или ii:ss
. Перед периодом можно поставить отрицательный знак -
(минус) - он просто будет удален.
По умолчанию: ''
Примеры
#1 Демонстрация работы функции
// En установка
echo human_readable_duration( '54:54:54' ); // 54 hour, 54 minute, 54 second
echo human_readable_duration( '54:54' ); // 54 minute, 54 second
echo human_readable_duration( '-54:54' ); // 54 minute, 54 second
// RU установка
echo human_readable_duration( '54:54:54' ); // 54 часа, 54 минуты, 54 секунды
echo human_readable_duration( '54:54' ); // 54 минуты, 54 секунды
echo human_readable_duration( '-54:54' ); // 54 минуты, 54 секунды
Список изменений
Код human_readable_duration() human readable duration
WP 5.6.2
<?php
function human_readable_duration( $duration = '' ) {
if ( ( empty( $duration ) || ! is_string( $duration ) ) ) {
return false;
}
$duration = trim( $duration );
// Remove prepended negative sign.
if ( '-' === substr( $duration, 0, 1 ) ) {
$duration = substr( $duration, 1 );
}
// Extract duration parts.
$duration_parts = array_reverse( explode( ':', $duration ) );
$duration_count = count( $duration_parts );
$hour = null;
$minute = null;
$second = null;
if ( 3 === $duration_count ) {
// Validate HH:ii:ss duration format.
if ( ! ( (bool) preg_match( '/^([0-9]+):([0-5]?[0-9]):([0-5]?[0-9])$/', $duration ) ) ) {
return false;
}
// Three parts: hours, minutes & seconds.
list( $second, $minute, $hour ) = $duration_parts;
} elseif ( 2 === $duration_count ) {
// Validate ii:ss duration format.
if ( ! ( (bool) preg_match( '/^([0-5]?[0-9]):([0-5]?[0-9])$/', $duration ) ) ) {
return false;
}
// Two parts: minutes & seconds.
list( $second, $minute ) = $duration_parts;
} else {
return false;
}
$human_readable_duration = array();
// Add the hour part to the string.
if ( is_numeric( $hour ) ) {
/* translators: %s: Time duration in hour or hours. */
$human_readable_duration[] = sprintf( _n( '%s hour', '%s hours', $hour ), (int) $hour );
}
// Add the minute part to the string.
if ( is_numeric( $minute ) ) {
/* translators: %s: Time duration in minute or minutes. */
$human_readable_duration[] = sprintf( _n( '%s minute', '%s minutes', $minute ), (int) $minute );
}
// Add the second part to the string.
if ( is_numeric( $second ) ) {
/* translators: %s: Time duration in second or seconds. */
$human_readable_duration[] = sprintf( _n( '%s second', '%s seconds', $second ), (int) $second );
}
return implode( ', ', $human_readable_duration );
}
Cвязанные функции