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

时间:2018-09-22 10:40:16

标签: javascript angular validation arraylist

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

到目前为止,我所做的是。

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 :(得分:2)

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

答案 1 :(得分:1)

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

拥有它们后,可以轻松进行比较。简单的例子:

df_original=pd.read_csv('/data.csv')
df=pd.DataFrame(df_original, columns=['A','B'])
for i in range(0,len(df['A']),100):
    df_100=df[i:i+100]

注意:var dateNow = new Date(); var dateYesterday = date.setDate(date.getDate() - 1); dateNow > dateYesterday //true 是一个很棒的库,具有大量的日期操作可能性。但是,该库的大小很大,因此不必向仅利用其基本知识的项目引入这种大小的新依赖项。