Как установить опцию даты вчера и сегодня? - PullRequest
0 голосов
/ 16 июня 2019

я пытаюсь установить опцию в качестве даты вчера, сегодня, завтра, я пытаюсь реализовать нижеприведенный код, но он не показывает вчерашнюю дату, я хочу, чтобы была выбрана сегодняшняя дата, а также вчера и завтра дата .. как это реализовать? любая помощь будет оценена. Заранее спасибо ..

<select id= "date-range" class="form-control" name="date">
   <option value="yesterday">15th June 2019 (Yesterday) </option>
   <option selected value="today">16th June 2019 (Today) </option>
   <option value="tomorrow">17th June 2019 (Tomorrow) </option>
 </select>

JQuery

<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var dateRange = document.getElementById('date-range'),
monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", 
"Sep", "Oct", "Nov", "Dec"];

for(var day = 0; day < 3; day++) {
  var date = new Date();
  date.setDate(date.getDate() + day);
  dateRange.options[dateRange.options.length] = new 
Option([date.getDate(), monthNames[date.getMonth()], 
date.getFullYear()].join(' '), date.toISOString());
}
});
</script>

Ответы [ 2 ]

1 голос
/ 16 июня 2019

Вы используете переменную day внутри цикла for, чтобы добавить ее к сегодняшней дате.Поскольку он начинается с 0 , он никогда не получит вчерашнюю дату.Вместо этого начните с -1 .

Чтобы сделать параметр автоматически выбранным, вы можете использовать параметры defaultSelected и selected элемента HTMLOptionElement иустановите для них значение true.

Наконец, чтобы узнать, что выбрал пользователь, вам необходимо присоединить прослушиватель событий change к элементу select.

var dateRange = document.getElementById('date-range'),
  monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
    "Sep", "Oct", "Nov", "Dec"
  ];
var days = ["yesterday", "today", "tomorrow"];
for (var day = -1; day < 2; day++) {
  var date = new Date();
  date.setDate(date.getDate() + day);
    var dateAsString = [date.getDate(), monthNames[date.getMonth()],
    date.getFullYear()
  ].join(' ');
  if (day == 0) {
    dateRange.options[dateRange.options.length] = new
    Option(dateAsString, dateAsString + " (" + days[day + 1] + ")", true, true);
  } else {
    dateRange.options[dateRange.options.length] = new
    Option(dateAsString, dateAsString + " (" + days[day + 1] + ")");
  }
}

function handleSelected(e) {
  console.log(e.target[e.target.selectedIndex].value + " selected");
}

dateRange.addEventListener("change", handleSelected);
<select id="date-range" class="form-control" name="date">

</select>
0 голосов
/ 16 июня 2019
    You can get as below,

    1) Yesterday Date

          let now = new Date();
          var defaultDate = now - 1000 * 60 * 60 * 24 * 1;
          defaultDate = new Date(defaultDate);

    2)  Today's date
          let now = new Date();
          var defaultDate = now ;
          defaultDate = new Date(defaultDate);

    3) Tomorrow's date

          let now = new Date();
          var defaultDate = now + 1000 * 60 * 60 * 24 * 1;
          defaultDate = new Date(defaultDate);

    Then you can just format it as per your required one.

    Hope this will help you
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...