Javascript users incorrect locale with date formatting

date, date-format, javascript, locale

Solution

Use this to pass the locale.

var locale = window.navigator.userLanguage || window.navigator.language;
alert(date.toLocaleString(locale));

Problem

In javascript I'm using `Date.toLocaleDateString` to format my dates in the user's locale. While in theory it should work, it doesn't. I am located in the UK. My computer is set to UK and my default language is set to en/gb in both system settings and the browser content settings. Yet, Firefox always displays dates the US format. Is there some trick I'm missing? The full code for formatting is this: ``` var timestamp = ...; //some value from ajax call var dt = new Date(timestamp); $('#audit-date').text(dt.toLocaleDateString()); ``` In the UK for today's date I would expect to see `05/02/2014`, but I see `02/05/2014`, which is the US version of it.

Original source

Related problems