La internacionalización de la salida de fechas y moneda quizás sea uno de los mayores quebraderos de cabeza para cualquiera que programa en PHP.
Con este código de ejemplo se puede ver una solución para las fechas y las monedas que funciona de una manera muy efectiva.
$date = new DateTime('1973-06-26');
$number = 987.12;
setlocale(LC_ALL, 'es_ES.UTF8');
echo strftime("%x", $date->getTimestamp()) . "\n";
echo NumberFormatter::create( 'es_ES', NumberFormatter::CURRENCY )->format($number) . "\n";
setlocale(LC_ALL, 'en_US.UTF8');
echo strftime("%x", $date->getTimestamp()) . "\n";
echo NumberFormatter::create( 'en_US', NumberFormatter::CURRENCY )->format($number) . "\n";
$number = 987.12;
setlocale(LC_ALL, 'es_ES.UTF8');
echo strftime("%x", $date->getTimestamp()) . "\n";
echo NumberFormatter::create( 'es_ES', NumberFormatter::CURRENCY )->format($number) . "\n";
setlocale(LC_ALL, 'en_US.UTF8');
echo strftime("%x", $date->getTimestamp()) . "\n";
echo NumberFormatter::create( 'en_US', NumberFormatter::CURRENCY )->format($number) . "\n";
Comentarios