<?php
function formatMoney(int $cents, string $currency = 'USD', string $locale = 'en_US'): string {
if (class_exists(NumberFormatter::class)) {
$f = new NumberFormatter($locale, NumberFormatter::CURRENCY);
return $f->formatCurrency($cents / 100, $currency);
}
return number_format($cents / 100, 2) . ' ' . $currency;
}
echo formatMoney(199, 'USD'); // $1.99
echo formatMoney(1599, 'EUR', 'de_DE'); // 15,99 €
echo formatMoney(50000, 'JPY', 'ja_JP'); // ¥500 (JPY has no minor unit)
Create a free account and build your private vault. Share publicly whenever you want.