Установить языковой стандарт в javascript

jQuery проверяет правильность даты с помощью:

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

new Date(dateString) совпадает с Date.parse(dateString) и использует язык браузера/ОС для анализа строки.

Я пытаюсь разобрать DD/MM/YYYY, но я получаю сообщение об ошибке, потому что мой браузер ищет MM/DD/YYYY. Поскольку мой продукт будет использоваться только людьми DD/MM, я хочу заставить это поведение.

Я мог бы написать собственный валидатор, но можно ли изменить язык браузера и через JavaScript?

Ответ 1

Вы не можете изменить локаль, так как такой функции нет в спецификации EMCAScript .

Однако есть хороший пакет под названием php.js, который реализует функции PHP в JavaScript.

Две из функций: setlocale() и date(). Вы можете использовать их.

Ответ 2

Для анализа дат следует использовать moment.js.

//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 также имеет модуль синтаксического анализа даты если вам нужно обрабатывать строки даты в других локалях/сценариях.

Ответ 3

Use теперь может использовать JavaScript Internationalization API, потому что теперь он поддерживается во всех браузерах. Это позволяет вам передавать язык, который будет настраивать формат даты.

console.log (новый Intl.DateTimeFormat('en-GB'). формат (дата));

Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

Ответ 4

Если ваш продукт будет использоваться только людьми DD/MM/YYYY, установите ваш браузер в поддерживающий языковой стандарт DD/MM/YYYY.