2016-06-06 2 views
0

Derzeit Ich versuche, ein Array mit dem Namen aller Monate erstellen automatisch mit der folgenden Hilfsfunktion:Kohlenstoff: Umlaut schafft gebrochenen Array

if (! function_exists('getMonthsArray')) 
{ 
    function getMonthsArray() 
    { 
     $monthArray = array(); 
     setlocale(LC_TIME, 'de_DE.utf8'); 

     for ($m=1; $m<=12; $m++) { 
      $dt = \Carbon\Carbon::create(2016, $m, 1, 0, 0, 0)->formatLocalized('%B'); 

     array_push($monthArray, $dt); 
    } 

    return $monthArray; 
    } 
} 

mit der folgenden Ausgabe:

array:12 [ 
     0 => "Januar" 
     1 => "Februar" 
     2 => b"März" 
     3 => "April" 
     4 => "Mai" 
     5 => "Juni" 
     6 => "Juli" 
     7 => "August" 
     8 => "September" 
     9 => "Oktober" 
     10 => "November" 
     11 => "Dezember" 
    ] 

Wie Sie sehen können, etwas passiert neben dem Wert "März" (3. Schlüssel). Ich kann mir nur vorstellen, dass es Probleme mit dem Umlaut "ä" gibt.

+0

Hat der Kommentar in der Dokumentation helfen? http://carbon.nesbot.com/docs/#api-localization –

+1

Ich glaube, das hat etwas mit Multibyte-Saiten zu tun und sollte nicht ein Problem sein. Welche Version von PHP verwenden Sie? – castis

+0

Kkinsey - Nein :( @catis 5.6.16 –

Antwort

1

U braucht es in utf8_encode Funktion wie diese zu wickeln:

$dt = utf8_encode(\Carbon\Carbon::create(2016, $m, 1, 0, 0, 0)->formatLocalized('%B')); 
+0

Nun ja, das ist endlich die fixe Magie, thx;) –