как получить номер данных +1 итерация - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть ввод с типом даты, я получаю значение ввода, и мне нужно сравнить следующее значение ввода +1 день или нет.Я не могу понять, как это сделать.

Я пытался:

это мой HTML:

<input type="date" class="form-control" data-model="startDate">
<input type="date" class="form-control" data-model="endDate">

в моем JS я установил переменные мои входы:

var start_dates = $("#periodTable :input[data-model='startDate']");
var end_dates = $("#periodTable :input[data-model='endDate']");

тогда я получаюих значения:

var end_date = $(end_dates).val();
var start_date = $(start_dates).val();

я получаю значение start_date на консоли:

2018-12-10

, и мне нужно сравнить следующее входное значение: 2018-12-11 или нет.

вот я пытался получить дневную часть этого вывода с

var start_date_day = start_date.substring(8, 10);

все в порядке, я получаю: 10

if (start_date_day != start_date_day + 1) {

}

но этот случай не работает, потому что я получаю с start_date_day + 1 = 11

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Даты в JavaScript работают по-разному, вы можете обратиться к этой ссылке для более подробной информации. Вы можете сделать что-то вроде этого:

var end_date = $(end_dates).val();
var start_date = $(start_dates).val();
var ed = new Date(end_date);//this will convert end_date in milliseconds         and store it in ed variable
var sd = new Date(start_date);
sd.setDate(sd.getDate() + 1);//sd now contains a date that is one day ahead of start_date
//now you can check if ed not equal to sd
if(ed != sd){
 //do what u want
}
0 голосов
/ 07 декабря 2018

Не уверен, что это самый эффективный способ, но он должен работать для вас.Если следующее входное значение равно +1, функция compute() вернет true.Вы можете повторно использовать логику.Я добавил id атрибуты в оба поля ввода.Я также не использую jQuery, но используя нативный JS, вы можете преобразовать его в синтаксис jQuery, если хотите.

Я создал JSFiddle для того же.https://jsfiddle.net/mazpxcut/

<html>
  <body>
    <input
      id="start_date"
      type="date"
      class="form-control"
      data-model="startDate"
    />
    <input
      id="end_date"
      type="date"
      class="form-control"
      data-model="endDate"
    />
    <button onclick="showVal()">Show</button>
  </body>
  <script>
    function showVal() {
      console.log(compute());
    }

    function compute() {
      var start_date_arr = document
        .getElementById("start_date")
        .value.split("-");
      var end_date_arr = document.getElementById("end_date").value.split("-");
      var start_date = start_date_arr.pop();
      var end_date = end_date_arr.pop();
      if (JSON.stringify(start_date_arr) !== JSON.stringify(end_date_arr))
        return false;
      else return end_date - start_date == 1;
    }
  </script>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...