首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用js验证这种格式(yyyy-mm)的日期?

如何使用js验证这种格式(yyyy-mm)的日期?
EN

Stack Overflow用户
提问于 2019-03-27 03:44:39
回答 1查看 49关注 0票数 -1

我需要验证日期是否采用此格式(yyyy-mm)

并确保它在今天之前,我的问题是,为什么当我使用这个构造函数时,我会提前一个月?

代码语言:javascript
复制
new Date(year, month, day, hours, minutes, seconds, milliseconds)

对于这样的任务,这是最好的方法吗?谢谢!

代码语言:javascript
复制
function testDate(dateString){
  dateString = dateString.trim();
  var regEx = /^\d{4}-([0][1-9]|[1][0-2])$/ ;
  if(dateString.match(regEx) !== null){

      var spArr = dateString.split('-');
      var year = parseInt(spArr[0], 10); 
      var month =parseInt(spArr[1], 10); 
      
      var currentDate = new Date();
      inputDate = new Date(year, month, 1, 12, 30, 0, 0);
      alert('year: ' + year + ' month: ' + month);
      alert(inputDate);

      if(inputDate > currentDate){
          alert('Input date ['+dateString+'] is greater than the current date!');
      }
      alert('all ok!');

  }else{
      alert('Input date ['+dateString+'] is of invalid format, correct format: yyyy-MM example: 1975-09');
  }
}

testDate('2014-04                  ');
testDate('14-04');
testDate('2014-4');

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 03:54:59

不需要重新发明轮子。Date构造函数已经为您处理了。

代码语言:javascript
复制
const testDate = str => {
  if (/^\d{4}-([0][1-9]|[1][0-2])$/.test(str)===null) return false;
  let now = new Date();
  try {
    return new Date(str)<new Date();
  } catch(err) {
    console.log(err);
    return false;
  }
}

console.log(testDate('2014-04                  '));
console.log(testDate('14-04'));
console.log(testDate('2014-04'));

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55365149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档