2013-02-09 14 views
5

Gdy używam toLocaleDateString w przeglądarce zwracaData toLocaleDateString w węźle

n = new Date() 
n.toLocaleDateString() 
"2/10/2013" 

ale w node.js format jest zupełnie inna

n = new Date() 
> n.toLocaleDateString() 
'Sunday, February 10, 2013' 

Jak zdobyć sformatować przeglądarki (mm/dd/yy) w węźle .js?

Odpowiedz

2
Date.prototype.toLocaleDateString = function() { 
    var d = new Date(); 
    return (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear(); 
}; 
+2

Jeśli jedynym rozwiązaniem jest zastąpienie prototypu, powinieneś po prostu napisać metodę tłumaczenia formatu niestandardowego. – jennz0r

-3

w węźle.JS nie można pobrać formatu przeglądarki. Node.JS działa po stronie serwera.

Musisz dokonać formatowania daty przed wyświetleniem go w przeglądarce w środowisku JS po stronie klienta.

+0

To nie wyklucza określenia przez serwer wartości domyślnej (tak jak ma to miejsce w strefach czasowych) lub umożliwienia określenia ustawień narodowych (pierwszego parametru 'toLocaleDateString'). – mattbasta

+5

Wygląda na to, że nie działa na moim serwerze (Węzeł 0.10.28). Niezależnie od tego, jaką wartość daję "toLocaleDateString", nadal jest to wersja amerykańska ... –

3

Znalazłam też to uszkodzony w node.JS. Na przykład w konsoli węzła typ:

nadal wyświetla format US. Stosując metodę Wernera powyżej, można zastąpić domyślne Date.toLocaleDateString() zachowanie w danym regionie:

Date.prototype.toLocaleDateString = function() { 
    return `${this.getDate()}/${this.getMonth() + 1}/${this.getFullYear()}`; 
}; 
0

Dla mnie rozwiązaniem było zainstalować dodatkowy moduł full-icu dla node js full-icu-npm

A przecież w pakiet .json insert:

{"scripts":{"start":"node --icu-data-dir=node_modules/full-icu YOURAPP.js"}}