2011-11-30 72 views
1

我在頁面中有一個視頻,我們可以下載它,在下載鏈接旁邊有一個顯示視頻大小的數字。如何創建將字節轉換爲KB,MB,GB等的宏

現在我有它的字節數,我想將它轉換爲KB,MB或GB。從我所瞭解的最佳做法來看,這是一個宏。

{% macro downloadSize(bytes) %} 
{% spaceless %} 
    {% set bytes = x/1024 %} 

    {% if bytes < 1024 %} 
     KB 
    {% endif %} 
    ...  
{% endspaceless %} 
{% endmacro %} 

我知道我沒有太多,但我真的需要幫助的語法和如何實現這一點。我想我的最終價值如「12.2 MB」

+0

創建樹枝擴展。 – Flukey

回答

2

老問題,但對於其他人 - >如果因爲任何原因,你不想與TwigExtensions這裏染指該宏是什麼樣子就像是:

{% macro bytesToSize(bytes) %} 
{% spaceless %} 
    {% set kilobyte = 1000 %} 
    {% set megabyte = kilobyte * 1000 %} 
    {% set gigabyte = megabyte * 1000 %} 
    {% set terabyte = gigabyte * 1000 %} 
    {% set petabyte = terabyte * 1000 %} 

    {% if bytes < kilobyte %} 
     {{ bytes ~ ' B' }} 
    {% elseif bytes < megabyte %} 
     {{ (bytes/kilobyte)|number_format(2, '.') ~ ' KB' }} 
    {% elseif bytes < gigabyte %} 
     {{ (bytes/megabyte)|number_format(2, '.') ~ ' MB' }} 
    {% elseif bytes < terabyte %} 
     {{ (bytes/gigabyte)|number_format(2, '.') ~ ' GB' }} 
    {% elseif bytes < petabyte %} 
     {{ (bytes/terabyte)|number_format(2, '.') ~ ' TB' }} 
    {% else %} 
     {{ (bytes/petabyte)|number_format(2, '.') ~ ' PB' }} 
    {% endif %} 
{% endspaceless %} 
{% endmacro %} 

編輯:修改腳本匹配十進制測量(KB,MB,GB ..)而不是二進制(KiB,MiB,GiB ...)。

+0

不錯,謝謝 - 我不想創建一個擴展,因爲我只在一個模板中使用它。 –

+0

它不適用於TB –

+0

它顯示最多4 GB –

相關問題