Spec-Zone.ru › Web APIs

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

См. также

  • <input>
  • HTMLInputElement.value
  • HTMLInputElement.valueAsNumber

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API