En muchas aplicaciones, a menudo surge la necesidad de formatear números según diferentes requisitos, como mostrarlos como moneda, porcentajes o tamaños de archivo legibles para humanos. Laravel no tenía una utilidad dedicada para esto, así que con la ayuda de la comunidad, decidí crear una. He estado trabajando en esta clase de utilidad por un tiempo y estoy realmente emocionado de que se haya fusionado en el framework. Veamos lo que ofrece.
Todos los métodos forman parte de la clase Illuminate\Support\Number:
use Illuminate\Support\Number;
Usando el método format
, podemos formatear un número según la configuración regional actual.
Number::format(25) // 25
Number::format(100000) // 100,000
Number::format(123456789) // 123,456,789
También podemos especificar una configuración regional personalizada para formatear el número según las reglas de esa configuración regional.
Number::format(123456789, 'en') // 123,456,789
Number::format(123456789, 'de') // 123.456.789
Number::format(123456789, 'sv') // 123 456 789
El método toPercentage
formatea un número como un porcentaje según la configuración regional actual.
Number::toPercentage(25) // 25%
Number::toPercentage((1/3) * 100, precision: 2) // 33.33%
Aquí hay otro método divertido utilizado para formatear varias monedas con soporte para la configuración regional. ¡Perfecto para tus tiendas en línea!
Number::toCurrency(10) // $10.00
Number::toCurrency(25, currency: 'EUR') // €25.00
Number::toCurrency(5.49, currency: 'EUR', locale: 'de') // 5.49 €
Aquí está el método toFileSize
, que en realidad es la razón detrás de esta clase de utilidad. En primer lugar, presenté un PR para agregar un ayudante File::bytesToHuman()
, que Taylor sugirió incorporar como parte de una nueva clase Number.
Number::toFileSize(1024); // 1 KB
Number::toFileSize(1600, precision: 2); // 1.56 KB
Number::toFileSize(1024 * 1024 * 1024 * 5); // 5 GB
A continuación, hay otro bastante divertido cuando quieres algo más legible que preciso. Convierte números en una cadena legible para humanos.
Number::forHumans(1000) // 1 mil
Number::forHumans(12345) // 12 mil
Number::forHumans(12345, precision: 3) // 12.345 mil
Podemos establecer la configuración regional globalmente utilizando el método setLocale
, por ejemplo, en un proveedor de servicios.
Number::setLocale('sv');
También puedes usar el método withLocale
, que ejecuta la devolución de llamada dada utilizando la configuración regional especificada y luego restaura la configuración regional original.
Number::withLocale('sv', function () {
return Number::format(123456789);
});
¡Comentarios de la comunidad!
Para poder comentar necesita ingresar a su cuenta, si no tienes una cuenta puede crear una