локализация — библиотека PHP Intl и удобочитаемый промежуток времени

Я использую библиотеку PHP Intl для форматирования дат, чисел и так далее.
Теперь я должен показать промежуток времени в читаемой человеком строке, например:

1 день, 1 час, 10 минут, 14с

или компактно:

1д 1с 10м 14с

или суперкомпактным способом:

1d 1.10: 14

Есть ли способ сделать это с помощью сборки в библиотеке Intl без gettext?
Если нет, я могу отформатировать временной интервал с помощью пользовательской функции, но могу ли я получить хотя бы имена (‘day’ или ‘d’) в правильной локали из IntlDateFormatter?

3

Решение

Да, ответ на ваш вопрос DateInterval, В соответствии с документация Вы можете использовать это так:

$pastDate = new DateTime('2015-09-01 15:00:00');
$today = new DateTime();

//calculate interval and returns DateInterval object
$timeSpan = $today->diff($pastDate);

//now we'll format it
echo $timeSpan->format('%a day, %h hour, %i minutes, %ss').PHP_EOL;
echo $timeSpan->format('%ad %hh %im %ss').PHP_EOL;
echo $timeSpan->format('%ad %h.%i:%s').PHP_EOL;

Результатом будет:

100 дней, 9 часов, 55 минут, 12 с

100d 9h 55m 12s

100d 9.55: 12

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]