Я використовую колекцію Jekyll для керування елементами уроку. Кожен елемент має тривалість у передній частині YAML:
---
duration: 5
---
Я перекриваю елементи, щоб визначити час початку кожного елемента:
{% assign current = 0 %}
<table>
{% for element in site.elements %}
<tr>
<td>{{ forloop.index }}</td>
<td>{{ element.title }}</td>
<td>{{ current | divided_by: 60 }}:{{ current | modulo: 60 }}</td>
</tr>
{% assign current = current | plus: element.duration %}
{% endfor %}
</table>
Це дає правильний вихід, але погано відформатовано: зокрема, кілька разів показано так:
9:5
замість:
09:05
Я не можу придумати спосіб використання форматування датиотримати вихід, який я хочу, оскільки "часи" - це лише хвилини, а не дати. Чи є спосіб форматування чисел у Jekyll із заданим числом десяткових знаків і провідними нулями?
Відповіді:
2 для відповіді № 1Можна використовувати умовне формулювання:
{% assign h = timeInMinutes | divided_by: 60 %}
{% if h <= 10 %}{% assign h = h | prepend: "0" %}{% endif %}
{% assign m = timeInMinutes | modulo: 60 %}
{% if m <= 10 %}{% assign m = m | prepend: "0" %}{% endif %}
{{ h }}:{{ m }}
Або струнний трюк:
{{ timeInMinutes | divided_by: 60 | plus: 100 | slice: 1, 2 }}
:
{{ timeInMinutes | modulo: 60 | plus: 100 | slice: 1, 2 }}