开发者

Set a locale in javascript

jQuery tests the validity of a date via:

!/Invalid|NaN/.test(new Date(value))

new Date(dateString) is the same as Date.parse(dateString) and uses browser/OS locale to parse the string.

I'm trying to parse DD/MM/YYYY开发者_JAVA技巧 but I get an error because my browser is looking for MM/DD/YYYY. Since my product will be used only by DD/MM people, I want to force this behaviour.

I could write a custom validator, but is it possible to change the browser locale via JavaScript as well?


You can now use JavaScript's Internationalization API because it's now supported in all browsers. It allows you to pass in a locale, which will customize the date format.

console.log(new Intl.DateTimeFormat('en-GB').format(date));

Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat


You should use moment.js to parse dates.

//parse string according to format and return new moment
var day = moment("16/12/2017", "DD/MM/YYYY");  

var dayAsDate = day.toDate();  //you can even covert the moment to a Date

Globalize also has a date parsing module if you need to handle date strings in other locales/scripts.


If your product will only be used by DD/MM/YYYY people, set your browser to a DD/MM/YYYY supporting locale.


You can't change the locale, as there is no such feature in the EMCAScript specification.

However, there is a nice package called php.js that implements PHP functions in JavaScript.

Two of the functions are setlocale() and date(). You can use them.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜