Проверка даты (Дата не должна находиться в диапазоне существующей даты) - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть форма, в которой пользователь может сохранить свои данные об образовании.Необходимость проверки для подобной даты не должна находиться в диапазоне существующих квалификационных записей.

То, что я до сих пор делал, это.

let eduList= this.var.educationResult;
  for(let i=0; i<= eduList.length-1; i++){      
        let startAndEnd = eduList[i][2].split('-');

        let existingFromYear= startAndEnd[0];
        let existingToYear = startAndEnd[1];

        let newFromYear= educationValues.fromDate.date.year;
        let newToYear= educationValues.toDate.date.year;

///Here I compared newly entered date with old education record dates.

      if((newFromYear > existingFromYear && newFromYear < existingToYear) || (newToYear> existingFromYear) && (newToYear < existingToYear) || (newFromYear === existingFromYear && newToYear === existingToYear)){
        toaster.error("Invalid Educational Details");
        this.validEdu = false;
        break;
      }
    }

Работает нормально.Но как проверить с полной датой (с месяцем и датами) для точного результата.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Воспользуйтесь преимуществами нативного javascript Date объектов.Используйте их для всех ваших дат (как новых, так и существующих).

Когда они у вас есть, вы можете легко сравнить их.Простой пример:

var dateNow = new Date();
var dateYesterday = date.setDate(date.getDate() - 1);

dateNow > dateYesterday //true

Примечание: moment.js - это потрясающая библиотека с множеством возможностей для манипулирования датами.Однако размер библиотеки довольно велик, и нет необходимости вводить новую зависимость этого размера в проект, который использует только ее простые основы.

0 голосов
/ 22 сентября 2018

Взгляните на moment.js

Это сделает обработку дат очень простой.Существуют и другие подобные библиотеки (date-fns, luxon и т. Д.).Вы можете использовать любой из них.

moment('2010-01-01').isSame('2010-02-01', 'day'); //returns false
moment('2010-01-01').isSame('2010-01-01', 'day'); //returns true

Ниже приведена ссылка на то, что вы ищете.http://momentjs.com/docs/#/query/is-same/

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