我在我的页面上有一个视频,我们可以下载它,在下载链接旁边,我有一个数字,显示视频的大小。
现在我有了字节,我想把它转换成KB、MB或GB。据我所知,最好的方法是使用宏。
{% macro downloadSize(bytes) %}
{% spaceless %}
{% set bytes = x/1024 %}
{% if bytes < 1024 %}
KB
{% endif %}
...
{% endspaceless %}
{% endmacro %}我知道我没有太多,但我真的需要在语法和如何完成这一点上的帮助。我希望我的最终值类似于“12.2MB”
发布于 2011-12-02 06:44:28
正如@Flukey提到的,方法是创建一个扩展。
我已经把它当做练习了。只需转到
https://github.com/BrazilianFriendsOfSymfony/BFOSTwigExtensionsBundle
然后拿到分机。
发布于 2013-02-04 06:34:50
这是一个老问题,但是对于任何其他-> 来说,如果你出于任何原因不想干涉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...)。
https://stackoverflow.com/questions/8330232
复制相似问题