Javascript用户使用日期格式设置的区域设置不正确

Ale*_*s G 9 javascript locale date date-format

在javascript中,我Date.toLocaleDateString用来在用户的语言环境中格式化我的日期.虽然理论上它应该有用,但事实并非如此.

我位于英国.我的计算机设置为UK,我的默认语言在系统设置和浏览器内容设置中都设置为en/gb.然而,Firefox始终显示美国格式的日期.有什么技巧我不见了?

格式化的完整代码是:

var timestamp = ...; //some value from ajax call
var dt = new Date(timestamp);
$('#audit-date').text(dt.toLocaleDateString());
Run Code Online (Sandbox Code Playgroud)

在今天的英国,我希望看到05/02/2014,但我看到02/05/2014,这是它的美国版本.

小智 6

使用它来传递区域设置。

var locale = window.navigator.userLanguage || window.navigator.language;
alert(date.toLocaleString(locale));
Run Code Online (Sandbox Code Playgroud)


Til*_*zer 4

快速浏览一下很棒的 MDN 文档告诉我,您需要一个区域设置参数,否则结果取决于浏览器。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

\n\n
// British English uses day-month-year order\nalert(date.toLocaleString("en-GB"));\n// \xe2\x86\x92 "20/12/2012 03:00:00"\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于更多自定义日期格式,我使用 moment.js 库。http://momentjs.com/

\n

  • 这违背了目的。我不知道区域设置是什么 - 我希望自动匹配用户的区域设置。 (5认同)