2016-04-12 7 views
3

私はJekyllコレクションを使ってレッスンの要素を管理しています。各要素は、そのYAML前付で持続時間を有する:カスタムプラグインを使用せずにJekyllの番号を整形する

--- 
duration: 5 
--- 

Iの各要素の開始時間を把握するための要素をループ:

{% 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

あなたは条件付き整形使用することができます。

{% 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 }} 
+0

おかげで - しかし、すごい、背中のFortranの初期の頃に私を取ります。 –

関連する問題