Установить языковой стандарт в 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.