Explorar el Código

convert number format

xielin hace 5 años
padre
commit
29bf326050

+ 12 - 9
app/Helper/helper.php

@@ -171,15 +171,18 @@ function success($data = [], $msg = "成功")
     return $response;
 }
 //转换数字
-function getNumber($num) {
-    if ($num >= 100000000) {
-        $num = sprintf("%.2f", $num / 100000000) . '亿';
-    } elseif ($num >= 100000) {
-        $num = intval($num / 10000) . '万';
-    } elseif ($num >= 10000) {
-        $num = sprintf("%.1f", $num / 10000) . '万';
+function getNumber($number)
+{
+    if (empty($number) || !is_numeric($number)) return (string)intval($number);
+    $unit = "";
+    if ($number >= 10000) {
+        $leftNumber = floor($number / 10000);
+        $rightNumber = bcmul(($number % 10000) / 10000, '1', 1);
+        $number = floatval($leftNumber + $rightNumber);
+        $unit = "w";
     } else {
-        $num = strval($num);
+        $decimals = $number > 1 ? 2 : 6;
+        $number = (float)number_format($number, $decimals, '.', '');
     }
-    return $num;
+    return (string)$number . $unit;
 }

+ 1 - 1
app/Transformers/Post/DetailTransformer.php

@@ -58,7 +58,7 @@ class DetailTransformer extends TransformerAbstract
             'img' => $post['img'],
             'imgs' => $imgs,
             'video' => $post['video'],
-            'pv' => $post->data->pv,
+            'pv' => getNumber($post->data->pv),
             'praise_count' => $post->data->praise_count,
             'collect_count' => $post->data->collect_count,
             'comment_count' => $post->data->comment_count,

+ 1 - 1
app/Transformers/Post/SuggestTransformer.php

@@ -70,7 +70,7 @@ class SuggestTransformer extends TransformerAbstract
             'img' => $post['img'],
             'imgs' => $imgs,
             'video' => $post['video'],
-            'pv' => $post->data->pv,
+            'pv' => getNumber($post->data->pv),
             'praise_count' => $post->data->praise_count,
             'comment_count' => $post->data->comment_count,
             'collect_count' => $post->data->collect_count,