number2curr

Convierte un número a moneda. La función puede llamarse como num2curr() o priceFormat().

Si se llama a la función con un número en formato nn.nn, devuelve una moneda con los valores por defecto según la configuración del usuario y en euros.

Por ejemplo, para:

$wv->conv->priceFormat(12.34);

El resultado para un usuario en español sería:
12,34 €

Para un usuario en inglés:
€12.34

Pero se pueden especificar varios parámetros si se necesita personalizar el formato, pasando como parámetro un array.

Por ejemplo, esta sería la configuración básica (pasando sólo el número), equivalente a la anterior consulta:

$wv->conv->priceFormat(['number'=>12.34]);

 

Estos son todos los parámetros del array:


number = Numero a convertir en moneda.
int = true para convertir el número en entero (quitar los decimales).
decimals = Número de decimales que se mostrarán en el precio.
locale = Código de idioma, por ejemplo es_ES.
currency = Simbolo de moneda a usar, por ejemplo; ¥ € $ &eur; EUR USD.
country = Código de país ISO3166-1/A2 para determinar la posición del símbolo de la moneda.
currency_position = Posición del símbilo de moneda delante o detrás del número (front|behind).
no_space = true para eliminar el espacio entre número y símbolo de moneda cuando este, va detrás del número.
no_currency = true para eliminar el símbolode moneda.
empty = Devuelve el contenido de este parámetro si el número está vacíó y no es cero (null, false o vacío)
not_zero = Si el valor es cero (string o numérico), lo toma como null, retornando false o el valor de empty


Por ejemplo, para sacar un precio en dólares:

$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$']);

El resultado sería, para un usuario en español: 12,34 $
En inglés: $12.34

Para forzar que salga siempre formateado en formato anglosajón se puede usar una de estas fórmulas:

$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$','locale'=>'en_US']);
$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$','currency_position'=>'front']);

El resultado sería siempre: $12.34

Para mostrar un precio sin decimales:

$wv->conv->priceFormat(['number'=>12.34,'int'=>true]);

El resultado sería: 12 €

Para mostrar un precio usando EUR en vez del símbolo:

$wv->conv->priceFormat(['number'=>12.34,'currency'=>'EUR']);

El resultado sería: 12,34 EUR

 

Operaciones con valores vacíos o cero:

$wv->conv->priceFormat(['number'=>0);

El resultado sería: 0,00 €

$wv->conv->priceFormat(['number'=>0,'not_zero'=>true,'empty'=>'Consultar']);

El resultado sería: Consultar

$wv->conv->priceFormat(['number'=>0,'empty'=>'Consultar']);

El resultado sería: 0,00 €

$wv->conv->priceFormat(['number'=>null,'empty'=>'Consultar']);

El resultado sería: Consultar

$precio = null;
$wv->conv->priceFormat(['number'=>$precio]);

El resultado sería: false