首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建将字节转换为KB、MB、GB等的宏

如何创建将字节转换为KB、MB、GB等的宏
EN

Stack Overflow用户
提问于 2011-12-01 01:24:56
回答 2查看 2.3K关注 0票数 1

我在我的页面上有一个视频,我们可以下载它,在下载链接旁边,我有一个数字,显示视频的大小。

现在我有了字节,我想把它转换成KB、MB或GB。据我所知,最好的方法是使用宏。

代码语言:javascript
运行
复制
{% macro downloadSize(bytes) %}
{% spaceless %}
     {% set bytes = x/1024 %}

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

我知道我没有太多,但我真的需要在语法和如何完成这一点上的帮助。我希望我的最终值类似于“12.2MB”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-02 06:44:28

正如@Flukey提到的,方法是创建一个扩展。

我已经把它当做练习了。只需转到

https://github.com/BrazilianFriendsOfSymfony/BFOSTwigExtensionsBundle

然后拿到分机。

票数 4
EN

Stack Overflow用户

发布于 2013-02-04 06:34:50

这是一个老问题,但是对于任何其他-> 来说,如果你出于任何原因不想干涉TwigExtensions,这里是这个宏的样子:

代码语言:javascript
运行
复制
{% 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...)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8330232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档