2013-07-03 6 views
5

Mam skryptu i chcę sformatować datę wyjścia do krótkiego formatu daty IE:toLocaleDateString JavaScript wydaje

7/3/2013 lub 7/3/13 pierwszy format daty czyni tak w Chrome, ale w każdej innej przeglądarce - nie wyświetla nazwy daty i roku.

function dateFormatter(date) { 
    return date.toLocaleDateString(); 
} 

Nieco mylić, dlaczego tak się dzieje. Czy to dlatego, że ta przeglądarka nie obsługuje tolocalDateString();

Czy muszę utworzyć niestandardowy łańcuch daty, aby działał?

Przepraszam, jeśli jest trochę mglisty - obejrzałem witrynę W3C, ale nie ufam tej witrynie.

Odpowiedz

2
function dateFormatter(date){ 
    if(Date.parse('2/6/2009')=== 1233896400000){ 
     return [date.getMonth()+1, date.getDate(), date.getFullYear()].join('/'); 
    } 
    return [date.getDate(), date.getMonth()+1, date.getFullYear()].join('/'); 
} 
+7

To nie jest regionalne ... – Koterpillar

+0

@kennebec, który działał idealnie. Próbowałem czegoś podobnego, ale szczerze mówiąc po prostu to zepsułem. Ale tak, że działało sprawnie. Twoje zdrowie. – MJCoder

+1

@kennebec, co jest z warunkiem, jeśli robi, dlaczego potrzebujemy tego dziwnego sprawdzania daty 2/6/2009? –

9

Domyślny format toLocaleDateString jest zdefiniowany przez implementację. Jeśli chcesz precyzyjnie kontrolować wyświetlane informacje, skorzystaj z przeglądarki obsługującej locales and options arguments do toLocaleDateString. Niestety w chwili obecnej oznacza to tylko Chrome.

Jeśli nie dbasz o użytkownika i jego lokalizację i chciałbyś pomylić wszystkich z formatem daty w USA, to tak, możesz zablokować części z datami zgodnie z sugestią @kennebec.

+0

Dzięki za podanie argumentów opcji. – Tony

Powiązane problemy