我需要使用JQuery来计算某人是否从出生日期起超过18岁.
var curr = new Date(); curr.setFullYear(curr.getFullYear() - 18); var dob = Date.parse($(this).text()); if((curr-dob)<0) { $(this).text("Under 18"); } else { $(this).text(" Over 18"); }
必须有一些更简单的函数来比较日期,而不是使用setFullYear和getFullYear方法.
注意:我想要找到新方法的实际原因是代码的长度.我必须将此代码放入一个限制为250个字符的数据库字段中.更改数据库不是快速或轻松发生的事情.
您可能会发现开源Datejs库很有帮助.特别是addYears
功能.
var dob = Date.parse($(this).text()); if (dob.addYears(18) < Date.today()) { $(this).text("Under 18"); } else { $(this).text(" Over 18"); }
以更简洁的方式:
$(this).text( Date.parse($(this).text()).addYears(18) < Date.today() ? "Under 18" : " Over 18" )
Date.prototype.age=function(at){ var value = new Date(this.getTime()); var age = at.getFullYear() - value.getFullYear(); value = value.setFullYear(at.getFullYear()); if (at < value) --age; return age; }; var dob = new Date(Date.parse($(this).text())); if(dob.age(new Date()) < 18) { $(this).text("Under 18"); } else { $(this).text(" Over 18"); }