New question

Question:

Date: 10-09-2021 16:36:59 (In Spanish)

Como minimizar la cantidad de visitas en PHP | p. ej, 7K view, 1M view[Resolved]

Tengo un blog donde muestro la cantidad de visitas de cada entrada pero esta la muestro de la siguiente manera: 2,330 visitas y la coma "," que separa la unidad de mil de la unidad, decena y centena lo logro con la función number_format()

¿Qué quiero lograr ?

Lo que yo quiero lograr es que la cantidad de numero se minimice lo más posible y este en vez de mostrarse de esta forma: 2,330 se muestre de esta forma: 2.3K

Lo que no estoy seguro si esto lo pueda lograr con alguna de las tantas funciones que posee PHP en su arsenal de guerra o tendré que preparar un script de PHP para lograr este objetivo.

El código para mostrar la cantidad de visita no lo coloco por aquí porque es algo básico y solo diré como se llama mi variable que es:
$visita


Espero me puedan ayudar...
Tags: PHP Votes: 1 - Answers: 6 - Views: 5 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 13-09-2021 16:05:41 Ya que usarías el marcador 'K' para miles tal vez podrías dividir el número de visitas entre mil y redondear el resultado a 1 decimal, sustituyendo el punto por una coma y agregando la letra 'K'. Otra idea podría ser mantener el uso de number_format (que agrega la coma), tratarlo como una cadena y cortarle (con substr) los dos últimos dígitos y finalmente agregar la 'K'   Votes: 1 - Link answer
     
  • Date: 14-09-2021 09:53:07 La verdad es que decidí mejor el implementar el uso de las condicionales if y con eso cree una función que admito fue un poco extensa pero decidí llevarla solo hasta 50 mil ya que mi sitio web es nuevo y pasara mucho tiempo para que un articulo logre ser tan leído o tal vez ni lo logre ya que en promedio los blog no suelen tener artículos con tantas visitas   Votes: 0 - Link answer
     
  • Date: 14-09-2021 13:12:05
    function formatear_visitantes($visita) {
        $visitantes = number_format($visita, 0, '.', ',');
        $posicion_coma = strpos($visitantes, ",");
        return substr($visitantes, 0, ($posicion_coma + 2)) . "K";
    }
    
    $visita = 2330;
    echo formatear_visitantes($visita);


    Devuelve 2.3K
      Votes: 2 - Link answer
     
  • Date: 14-09-2021 15:33:45 Hola Baylin te comparto mi solucion para ese problema

    function reduceQuantity(int $num): string {
        if($num >= 1000000 ){
            $suffix = "M";
            $num = round(($num / 1000000), 2);
        }else if($num >= 1000){
            $suffix = "K";
            $num = round(($num / 1000), 2);
        }else{
            $suffix = "";
            $num = $num;
        }    
        return "{$num}{$suffix}";
    }
    
    // tests
    // I: 12000   O: 12K
    // I: 1200000 O: 1.2M
    // I: 900     O: 900
    
      Votes: 2 - Link answer
     
  • Date: 15-09-2021 10:54:50 Hola juan

    La verdad es que hay un problema en la función y es que por ejemplo si mi post tiene 523 visitas dice que tiene 52K y eso esta muy mal.

    Espero lo pueda solucionar para implementarlo en mi código, un saludo.
      Votes: 0 - Link answer
     
  • Date: 15-09-2021 15:17:45 Un simple if() soluciona tu problema:
    echo ($visita >= 1000) ? formatear_visitantes($visita) : $visita;

    Si el numero de visitas es igual o mayor a 1000, aplicas el formato. En caso contrario, solamente muestas el numero de visitas. Ese código iría fuera de la función. Si quieres incorporarlo a la función:
    function formatear_visitantes($visita) {
        if($visita >= 1000) {
            $visitantes = number_format($visita, 0, '.', ',');
            $posicion_coma = strpos($visitantes, ",");
            return substr($visitantes, 0, ($posicion_coma + 2)) . "K";
        }
        return $visita;
    }
      Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In