echo Yii::app()->NumberFormatter->formatDecimal( "123456789", "USD");
Yii::app()->NumberFormatter->formatDecimal() kürzerer Aufruf?
#1
Posted 04 October 2009 - 10:07 AM
#2
Posted 04 October 2009 - 02:02 PM
echo Yii::app()->NumberFormatter->formatCurrency( "123456789", "USD");
formatDecimal() erwartet ja nur einen Parameter. Oder was genau willst du erreichen?
#3
Posted 04 October 2009 - 03:10 PM
Mike, on 04 October 2009 - 02:02 PM, said:
echo Yii::app()->NumberFormatter->formatCurrency( "123456789", "USD");
formatDecimal() erwartet ja nur einen Parameter. Oder was genau willst du erreichen?
sorry, habe mich undeutlich ausgedrückt.
Es geht um diesen Teil, ob man das irgendwie verkürzen kann. "Yii::app()->NumberFormatter->"
#4
Posted 04 October 2009 - 03:59 PM
$nf = Yii::app()->NumberFormatter; ... echo $nf->formatCurrency( "123456789", "USD");
?



#5
Posted 04 October 2009 - 04:00 PM
yoshi, on 04 October 2009 - 03:59 PM, said:
$nf = Yii::app()->NumberFormatter; ... echo $nf->formatCurrency( "123456789", "USD");
?



thx!!!!
#6
Posted 04 October 2009 - 04:00 PM
echo Yii::app()->NumberFormatter->format("#,##0.00", "123456789", "EUR");
(falsch) führt zu
123,456,789.00
und nicht zu (richtig)
123.456.789,00
Laut http://www.yiiframew...r#format-detail habe ich alles richtig gemacht
#7
Posted 04 October 2009 - 04:21 PM
der CNumberFormatter wird von deinen locale-Einstellungen beeinflusst!
Füge mal folgendes zu deiner Konfiguration in der main.php hinzu:
'language'=>'de',
Jetzt sollte alles wie erwartet aussehen ;-)
#8
Posted 04 October 2009 - 04:23 PM
jetzt klappt es!!! Aber es muss doch auch irgendwie mit dem "currency" - Parameter funktionieren
#10
Posted 04 October 2009 - 04:38 PM
echo Yii::app()->NumberFormatter->format("#,##0.00 €", "123456789", "EUR");
Habe das soweit gemacht jedoch funktioniert, dass nur wenn ich 'language' => 'de' in der config eintrage. Aber ist auch egal, hauptsache es funktioniert.
Kannst du mir vielleicht bei meinem "MANY-MANY-MANY" Problem weiterhelfen?
http://www.yiiframew...many-beziehung/
#11
Posted 02 January 2011 - 08:25 AM
Noch zum Tema wie das ganze verkürzt werden kann:
In meiner index.php hab ich die Zeile:
include "protected/components/shortcut.php"; ganz oben
In dieser datei stehen alle meine Hilfsfunktionen die ich global benutze.. dort kann dann für das Zahlenformatieren z.B. folgendes rein:
function formatCurrency($number, $cur='EUR') { return Yii::app()->NumberFormatter->format("#,##0.00¤", $number, $cur); }
Jetzt lässt sich jeder Preis in dem programm ganz kurz mit:
formatCurrency(123.56) formatieren
Ein weiterer Vorteil ist, dass mit zukünftigen, geänderten, Anforderungen der Code nur in diesem Punkt geändert werden braucht (z.B. kann man eine Switchanweisung einbauen. die je nach language die Zahl anders formatiert)
#12
Posted 03 January 2011 - 04:05 AM
Yii::app(), getNumberFormatter() und dann eben format(). Stattdessen könnte man den formatter auch in einer statischen Variable vorhalten, damit bleibt ab dem 2. Aufruf nur noch 1 Funktionsaufruf übrig:
static $formatter=null; if ($formatter===null) $formatter=Yii::app()->numberFormatter; return $formatter->format(...)
#13
Posted 16 August 2012 - 01:35 PM
Das ist eine gute Idee denke ich, aber wie bzw. an welcher Stelle muss das eingebaut werden ?
static $formatter=null; if ($formatter===null) $formatter=Yii::app()->numberFormatter; return $formatter->format(...)
Mike, on 03 January 2011 - 04:05 AM, said:
Yii::app(), getNumberFormatter() und dann eben format(). Stattdessen könnte man den formatter auch in einer statischen Variable vorhalten, damit bleibt ab dem 2. Aufruf nur noch 1 Funktionsaufruf übrig:
static $formatter=null; if ($formatter===null) $formatter=Yii::app()->numberFormatter; return $formatter->format(...)