Извините за еще один вопрос здесь,

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

Я пытаюсь сделать следующее: когда любой пользователь выбирает дату, он заполняет значение в формате «MM-DD».

Например,

<input type="date" name="departure_1" id="depature_1" />
<input type="date" name="arrival_2" id="arrival_2" />

Вывод должен выглядеть примерно так:

Дата отправления: 10-24 Дата прибытия: 11-24

До сих пор я понял, что я могу сделать что-то похожее на приведенное ниже, чтобы изменить формат даты, но я не могу придумать способ реализовать это в функции и получить то, что я ищу

var result = enteredDate.getMonth() + "" + enteredDate.getDate()

Любая помощь была бы очень признательна.

0
New to Java Script 12 Дек 2016 в 20:38

3 ответа

Лучший ответ

Не все браузеры поддерживают тип ввода даты, но я позволю вам разобраться с этим. Для тех, кто его поддерживает, это значение форматируется в соответствии с ISO 8601, то есть гггг-мм-дд. Если вы передадите это в конструктор Date, он будет считаться UTC, поэтому для пользователей к западу от Гринвича дата будет накануне, например, 2016-12-12 для пользователя на восточном побережье США будет 2016-12-11 в 19:00.

Но если вы просто хотите показать дату как mmdd, вам вообще не нужен объект Date, просто переформатируйте строку:

function showMMDD(d) {
  var b = d.split('-')
  var el = document.getElementById('formatedDate');
  if (el) {
    el.textContent = b[1] + '-' + b[2];
  }
}
<input type="date" value="2016-12-15" onblur="showMMDD(this.value)">
<p>Date as mm-dd: <span id="formatedDate"></span></p>
0
RobG 13 Дек 2016 в 00:21

Так что сделайте это функцией, запомнив, что номер месяца в JS начинается с 0 и что вам нужно дополнить начальным нулем.

var result = getMMDD(document.getElementById("dateinput").valueAsDate);

function getMMDD(date) {
   return ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2)
}
0
Alex K. 12 Дек 2016 в 17:54

Вы должны сделать это

var result = new Date(enteredDate).getMonth()+1+""+ new Date(enteredDate).getDate()
-1
Taiti 12 Дек 2016 в 17:52