javascript - Smarty php - 如何将1000替换为1k等
问题描述
有什么办法可以代替这个:
<div>{math equation="x - y" x={$n.total_rating} y={$n.total_ratings}}</div>
例如,结果是1300以接收此1.3k,依此类推...
解决方案
尝试在 libs\plugins\modifier.num_format.php
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
function smarty_modifier_num_format($string) {
if($string>1000) {
$x = round($string);
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return $x_display;
}
return $string;
}
并在主题文件中
{assign var="mynubers" value="{math equation="x - y" x={$n.total_rating} y={$n.total_ratings}}"}
{if $mynubers > '1000'}{$mynubers|num_format}{else}{$mynubers}{/if}
推荐阅读
- amazon-web-services - 如何使用 jenkins 将 asp.net 核心应用程序自动部署到 ec2 实例?
- javascript - Javascript 名称字段掩码(使用正则表达式)
- reactjs - 在哪里使用域和 ssl 证书在 web 上托管 reactjs 站点?
- php - 阻止从地址栏访问仪表板部分
- android - 如果按钮是ACTION_DOWN,可以强行按住1秒吗?
- jsp - 是否可以发送 2 个不同的文本框值但相同的文本框名称?
- css - 在 css 文件中导入 material-ui 库
- vue.js - 如何用 Jest 测试 catch 函数
- git - Jenkins 构建未正确执行“docker tag”命令
- c++ - 试图将 gzip 中的文件提取到 C++ 中的临时文件夹