繁体   English   中英

日期验证(日期不应在现有日期范围内)

[英]Date Validation (Date should not be in the range of existing date)

我有一个表单,用户可以在其中保存他们的教育详细信息。 需要验证此日期不应该在现有资格记录的范围内。

到目前为止我所做的是。

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;
      }
    }

它工作正常。 但如何检查完整日期(包括月份和日期)以获得确切结果。

看看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/

利用本机javascript Date对象。 将它们用于所有日期(新日期和现有日期)。

当你拥有它们时,你可以轻松地比较它们。 简单的例子:

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

dateNow > dateYesterday //true

注意: moment.js是一个很棒的库,有很多日期操作的可能性。 但是,库的大小非常大,并且不需要将这种大小的新依赖项引入仅利用其纯粹基础的项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM