将日期与10年前的今天日​​期进行比较

时间:2015-12-12 16:42:26

标签: javascript date

我想检查一下给定的日期是否高于10年前(所以这个人的年龄不到10年)。我搜索了许多信息而没有可能的结果。

编辑:当我提醒" objetoFechaNacimiento"时,如果用户输入" 22/1/2015",则会提醒"星期六10月01日2016 00:00:00 GMT + 0200"。这一定是问题......

这就是我得到的:

  var nacimiento = document.getElementById("fechaNacimiento").value;
  var objetoFechaActual = new Date();
  var objetoFechaNacimiento = new Date(nacimiento);
  var fechaMinima = objetoFechaActual.setYear(objetoFechaActual.getFullYear() - 10);
  var objetoFechaMinima = new Date(fechaMinima);

  if ( objetoFechaNacimiento.getTime() >= objetoFechaMinima.getTime() ) {
        alert("You can not be less than 10 years old.");
        return false;
  }

3 个答案:

答案 0 :(得分:3)

只需将日期重新格式化为有效格式

即可
var nacimiento = document.getElementById("fechaNacimiento").value;
var parts = nacimiento.split("/");
var objetoFechaNacimiento = new Date(parts[2],parts[1]-1,parts[0]);

同样,当您创建最小日期时,您可以在该日期使用setFullYear而不是保存setDate的结果

答案 1 :(得分:1)

在jsfiddle中,我尝试了以下内容:

var curDate = new Date();
curDate.setFullYear(curDate.getFullYear() - 10);
alert(curDate);

执行时,会输出Mon Dec 12 2005 ...

答案 2 :(得分:0)

我试试了moment.js库http://momentjs.com/docs/#/manipulating/subtract/使用require.js加载它或者像这样:

<script src="moment.js"></script>

然后像

var oneYearAgo = moment('2014-01-01T00:00:00.000').set('year',2013).format();

甚至更好

var oneYearAgo = moment(objetoFechaActual).subtract(1, 'years').format();

在你的情况下,甚至可能就足够了:

var oneYearAgo = moment().subtract(1, 'years').format();

我真的很鼓励你将这个lib用于日期。