HTMLInputElement: свойство valueAsDate
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
Свойство valueAsDate интерфейса HTMLInputElement представляет текущее значение элемента <input> в виде объекта Date или null, если преобразование невозможно.
Это свойство также можно задать напрямую, например, для установки значения по умолчанию даты на основе некоторого условия. Если предоставленное значение не является null или объектом типа Date, выбрасывается исключение TypeError. Если предоставленное значение является null или некорректной датой, значение ввода устанавливается в пустую строку.
Это свойство всегда возвращает null при обращении к элементу ввода, не являющемуся элементом даты или времени. При попытке установить это свойство для такого элемента ввода будет выброшено исключение InvalidStateError DOMException.
Значение
Объект Date или null в случае невозможности преобразования.
Примеры
Получение значения даты
Этот пример демонстрирует доступ к свойству valueAsDate для элемента ввода типа неделя.
HTML
Включаем элемент ввода типа week:
<label for="date">Pick a date and time:</label> <input name="date" id="date" type="week" /> <pre id="log"></pre>
JavaScript
Если дата или время не выбраны, пустой ввод преобразуется в null. Каждый раз при выборе значения генерируется событие change, обновляющее содержимое <pre>, отображающее значение HTMLInputElement.value элемента управления в формате даты.
const logElement = document.getElementById("log");
const inputElement = document.getElementById("date");
logElement.innerText = `Initial value: ${inputElement.valueAsDate}`;
inputElement.addEventListener("change", () => {
logElement.innerText = `${inputElement.value} resolves to ${inputElement.valueAsDate}`;
});
Результаты
Использование методов Date
Этот пример демонстрирует применение методов Date непосредственно к свойству valueAsDate элемента ввода типа дата.
HTML
Включаем элемент ввода типа date:
<label for="date2">Pick a date:</label> <input name="date2" id="date2" type="date" /> <pre id="log"></pre>
JavaScript
Если дата не выбрана, пустая строка преобразуется в null. Каждый раз при выборе значения генерируется событие change. Затем в журнал записывается выбранная дата, отформатированная с помощью метода toLocaleDateString() объекта Date.
const logElement = document.getElementById("log");
const inputElement = document.getElementById("date2");
const options = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
};
logElement.innerText = `Initial value: ${inputElement.valueAsDate}`;
inputElement.addEventListener("change", () => {
if (inputElement.valueAsDate !== null) {
logElement.innerText = `You selected ${inputElement.valueAsDate.toLocaleDateString("en-US", options)}`;
} else {
logElement.innerText = `${inputElement.value} resolves to ${inputElement.valueAsDate}`;
}
});
Результаты
Дата может отличаться из-за местного часового пояса.
Спецификации
| Спецификация |
|---|
| HTML # dom-input-valueasdate-dev |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
valueAsDate |
5 | 12 | 5720–24 | ≤12.1 | 5 | 18 | 5720–24 | ≤12.1 | 4 | 1.0 | ≤37 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/valueAsDate