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?
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.
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
You should use moment.js to parse dates.
Globalize also has a date parsing module if you need to handle date strings in other locales/scripts.