Целое число формата Freemarker в минутах и ​​секундах - PullRequest
0 голосов
/ 23 мая 2018

У меня есть целочисленное значение, представляющее промежуток времени в секундах, и я отформатирую его как минуты и секунды: Пример: у меня есть целое число durationInSeconds = 341, и я хочу, чтобы оно отображалось как 05:41.

* 1004.* Единственный способ найти для форматирования форматирование даты, но у меня нет даты - у меня есть целое число

Это работает:

${.now?date?string("mm:ss")}

Выводит текущие минуты и секунды, например, 46:50

Это не работает:

${durationSeconds?date?string("mm:ss")}

Выдает ошибку:

Не разбираемая дата: "341"

Существует ли простой способ преобразовать / отформатировать целочисленное значение таким образом?

1 Ответ

0 голосов
/ 23 мая 2018

Числа могут быть преобразованы в дату / время / дату / время через ?number_to_date / ?number_to_time / ?number_to_datetime, но они не являются тем, что вы хотите, поскольку они интерпретируют ввод как миллисекунды, прошедшие с начала эпохи, плюс форматирование будетсчитать в вашем часовом поясе.Но у вас есть продолжительность, а не мгновение.Таким образом, вы можете просто сделать это:

${(durationSeconds / 60)?int}:${durationSeconds % 60}

Конечно, если вам это нужно в нескольких местах, тогда вы можете определить #macro для этого (тогда это будет похоже на <@duration durationSeconds />) или определитьнастраиваемый числовой формат для этого (тогда это будет похоже на ${durationSeconds?string.@duration}).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...