Для ввода даты я использую поле input[type=date]
На MDN написано: Примечание: Помните, что отображаемый формат даты отличается от настоящего значения value – отображаемый формат даты будет выбран, базируясь на региональных параметрах браузера пользователя
То есть у некоторых пользователей первым значением будет дата, у других - месяц. Возможно даже год, не уверен.
Мне необходимо для поля вывести текст-placeholder в виде dd.mm.yyyy или mm.dd.yyyy
Как определить, какой формат будет верным?
1) date.toLocaleString(locales) - через параметр передать нужный формат, если не передавать то будет по региональным настройкам браузера MDN
2) с помощью методов объекта дата(getFullYear(), getMonth(), getDate()) составить нужную строку
Либо вы не поняли мой вопрос, или я ваш ответ.
Смотрите, и меня есть только поле date.
Если человек просмотрит страницу c браузера с американской английской локалью, то ему будет доступен такой формат "месяц-день-год"
В британском английском "день-месяц-год"
В японском "год-месяц-день"
Формат ввода меняет сам браузер. Мне необходимо определить этот порядок и вывести над полем текст-подсказку, типа yyyy.mm.dd для японии
Из ваших примеров пока не понял, как этого можно достичь
ICUI4CU, да немного недопонял вопрос...встроенных методов, которые бы сделали это нету...тут только самому форматировать, я бы сделал как то так...
let date = new Date();
const dateTimeFormat = new Intl.DateTimeFormat("ar-EG");
// возвращает массив объектов том порядке, как они идут в текущей local
const parts = dateTimeFormat.formatToParts(date);
console.log(parts);
let date_template = parts.reduce((str, el) => {
if(el.type === "day") el.value = "DD";
if(el.type === "month") el.value = "MM";
if(el.type === "year") el.value = "YYYY";
return str + el.value;
},"");
console.log(date_template);
Но нужно учесть, что тут потребуется обработка частных случаев, например в Японии есть еще эра...