human_readable_duration() WP 5.1.0

Конвертує період часу у форматі HH:ii:ssабо ii:ssв формат, що читається.

Дивіться також самописну функцію – перетворення секунд на людський вигляд seconds_to_human() .

Хуків немає.

Повертає

Строку|false. Рядок у зручному для читання форматі або false при невдалому конвертуванні.

Використання

human_readable_duration ($ Duration);
$duration
(рядок)
Період/термін у форматі
HH:ii:ssабо
ii:ss. Перед періодом можна поставити негативний знак
-(мінус) – він буде видалено.


За замовчуванням:

Приклади

0

#1 Демонстрація роботи функції

// En установка
echo human_readable_duration( '54:54:54'); // 54 hour, 54 minute, 54 second
echo human_readable_duration( '54:54'); // 54 хвилини, 54 second
echo human_readable_duration('-54:54'); // 54 хвилини, 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 секунди

список змін

З версії 5.1.0Введено.

Код human_readable_duration() WP 6.0.2

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);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *