Symfony 如何创建将字节转换为KB、MB、GB等的宏
我有一个视频在我的网页,我们可以下载它,旁边的下载链接,我有一个数字,显示了视频的大小 现在我有了字节,我想把它转换成KB、MB或GB。据我所知,最好的方法是使用宏Symfony 如何创建将字节转换为KB、MB、GB等的宏,symfony,twig,Symfony,Twig,我有一个视频在我的网页,我们可以下载它,旁边的下载链接,我有一个数字,显示了视频的大小 现在我有了字节,我想把它转换成KB、MB或GB。据我所知,最好的方法是使用宏 {% macro downloadSize(bytes) %} {% spaceless %} {% set bytes = x/1024 %} {% if bytes < 1024 %} KB {% endif %} ... {% endspaceless %}
{% macro downloadSize(bytes) %}
{% spaceless %}
{% set bytes = x/1024 %}
{% if bytes < 1024 %}
KB
{% endif %}
...
{% endspaceless %}
{% endmacro %}
{%macro downloadSize(字节)%}
{%spaceless%}
{%set bytes=x/1024%}
{%如果字节<1024%}
KB
{%endif%}
...
{%endspaceless%}
{%endmacro%}
我知道我没有太多,但我真的需要在语法和如何完成这方面的帮助。我希望我的最终值类似于@Flukey提到的“12.2MB”,方法是创建一个扩展 我这样做是为了锻炼身体。去
获取扩展。正如@Flukey提到的,方法是创建一个扩展 我这样做是为了锻炼身体。去
然后获取扩展名。还有一个老问题,但对于其他人来说->如果出于任何原因,你不想干预TwigeExtensions,下面是宏的样子:
{% 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 %}
{%macro-bytesToSize(字节)%}
{%spaceless%}
{%set KB=1000%}
{%set MB=KB*1000%}
{%set千兆字节=兆字节*1000%}
{%set TB=GB*1000%}
{%set PB=TB*1000%}
{%if字节
编辑:修改脚本以匹配十进制度量(KB、MB、GB…),而不是二进制(KiB、MiB、GiB…)。和老问题,但对于其他人->如果出于任何原因,您不想干预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 %}
{%macro-bytesToSize(字节)%}
{%spaceless%}
{%set KB=1000%}
{%set MB=KB*1000%}
{%set千兆字节=兆字节*1000%}
{%set TB=GB*1000%}
{%set PB=TB*1000%}
{%if字节
编辑:修改脚本以匹配十进制度量值(KB、MB、GB…),而不是二进制度量值(KiB、MiB、GiB…。创建一个细枝扩展。创建一个细枝扩展。很好,谢谢-我不想创建扩展,因为我只在一个模板中使用它。想知道为什么吗?脚本非常简单,我不认为它在计算TB/GB时会失败。很好,谢谢-我不想创建一个扩展,因为我只在一个模板中使用它。想知道为什么吗?这个脚本非常简单,我不认为它在计算TB/GB时会失败。