我想检查一下给定的日期是否高于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;
}
答案 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用于日期。