2017-09-12 2 views
0

Mit md-datepicker, wenn das Gebietsschema auf 'th' (Thai) eingestellt wird, ist das Jahr falsch. HierFalsches Datum md-datepicker Lokalisierung Thai Sprache

ist ein Plunker: https://embed.plnkr.co/6guQWJyfAUtEgPje9Tcd/

stelle ich die locale in @NgModule mit locale_ID Anbieter

Gibt es ein Problem mit der Art, wie ich die Sprache habe die Einrichtung?

Viele andere Sprachen, die ich getestet habe, funktionieren wie vorgesehen.

+0

Dies ist ein Intl-Problem. Versuchen Sie Folgendes in der Browser-Konsole, um es zu sehen: '' 'var myDate = neues Datum();' '' '' 'neues Intl.DateTimeFormat ('th'). Format (myDate)' '' –

Antwort

1

Dies ist ein Intl-Problem. Versuchen Sie Folgendes in der Browser-Konsole:

var myDate = new Date(); 
new Intl.DateTimeFormat('th').format(myDate); 

Sie werden "12/9/2560" sehen. Dies liegt daran, dass der buddhistische Kalender standardmäßig verwendet wird. Sie müssen es auf den Gregory-Kalender umstellen. Ihr Gebietsschema sollte also th-TH-u-ca-gregory lauten. Sie können eine Funktion verwenden, um die erforderlichen Kalender mit den Lokalisierungs von Ihrem Browser zurückgegeben hinzuzufügen:

function getLocale() { 
    const locale = 'th'; 
    return `${locale}-u-ca-gregory`; 
} 

providers: [{ provide: LOCALE_ID, useFactory: getLocale }] 

Siehe aktualisiert plunk.

+0

Danke, ich glaube nicht, dass das Plunk, das du verlinkt hast, aktualisiert wird, aber die Verwendung von "th-TH-u-ca-gregory" funktioniert! In meinem Produktionscode benutze ich navigator.language, um das Gebietsschema zu erhalten, das "th" zurückgibt, wenn der Browser auf Thai eingestellt ist, gibt es eine Möglichkeit, das Gregory-Gebietsschema zu bekommen? Wenn nicht, kann ich einfach eine Funktion schreiben, um 'th' durch 'th-TH-u-ca-gregory' zu ersetzen. –

+0

Sie haben Recht. Ich habe meine Antwort geändert. Ja, Sie können eine Funktion verwenden, um dem von Ihrem Browser zurückgegebenen Gebietsschema den erforderlichen Kalender hinzuzufügen. –

+0

Leider gibt es immer noch ein Problem mit MD-Datepicker. Die Monate sind Tage werden nach der Auswahl eines Datums durcheinander geraten. –