admin管理员组

文章数量:1429643

I've to represent the date with local user's configurations. Follows the MDN description:

The toLocaleDateString method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98).

I do this:

var date = new Date ();
console.log (date.toLocaleDateString ());

It prints out Saturday, October 13, 2012 but what I expect is Sabato, 13 Ottobre, 2012 (that's the Italian date format). Now, configurations of my browser and my system are set properly (Italian language and the above format date) so I don't understand how does toLocaleDateString work.

Am I doing it right?

I've to represent the date with local user's configurations. Follows the MDN description:

The toLocaleDateString method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98).

I do this:

var date = new Date ();
console.log (date.toLocaleDateString ());

It prints out Saturday, October 13, 2012 but what I expect is Sabato, 13 Ottobre, 2012 (that's the Italian date format). Now, configurations of my browser and my system are set properly (Italian language and the above format date) so I don't understand how does toLocaleDateString work.

Am I doing it right?

Share Improve this question edited Oct 13, 2012 at 9:56 Patrick 18k6 gold badges72 silver badges85 bronze badges asked Oct 13, 2012 at 9:05 WilkWilk 8,14310 gold badges47 silver badges71 bronze badges 7
  • are you sure you've entered toLocaleDateString and not toLocaleString? – wnrph Commented Oct 13, 2012 at 9:09
  • All the specification is saying is that it is implementation-dependent: es5.github./#x15.9.5.6 (and that it is intended to represent the date in the current locale, but well, it's just that, intended). – Felix Kling Commented Oct 13, 2012 at 9:12
  • @artistoex both Firefox (16) and Chromium (18). The system is Ubuntu (11.10) – Wilk Commented Oct 13, 2012 at 9:20
  • MDN doesn't seem to be too correct there. For Chrome, the source shows that it simply uses hardcoded, English names for days/months. There is no check for the current locale. – pimvdb Commented Oct 13, 2012 at 9:50
  • Well, I leave this question open so if things change, someone (or me) can post the solution. What a pity, toLocaleDateString would have been an interesting implementation of local date. – Wilk Commented Oct 14, 2012 at 8:54
 |  Show 2 more ments

2 Answers 2

Reset to default 0

According to the Mozilla documentation, the format can vary wildly depending on the user's location and puter settings.

https://developer.mozilla/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

The exact format depends on the platform, locale and user's settings.

This question is out-of-date.

These are my tests:

(new Date ()).toLocaleDateString () -> "4/9/2013" (italian format 'd/m/Y') with Chrome 29
(new Date ()).toLocaleDateString () -> "mercoledì 4 settembre 2013" (italian format 'D d M Y') with Firefox 22

It works with newest browsers versions.

本文标签: javascriptHow does DatetoLocaleDateString() workStack Overflow