Set a locale in javascript

折月煮酒 提交于 2019-12-10 01:26:04

问题


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 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?


回答1:


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.




回答2:


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.




回答3:


Use 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




回答4:


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



来源:https://stackoverflow.com/questions/2385474/set-a-locale-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!