我有一个场景,页面显示特定日期(例如 09/10/2015)的用户年龄 (30)。现在,在选择新日期时,我必须使用以下业务逻辑预先填充新的年龄字段:当新日期距离给定日期大于 6 个月/182 天(例如 03/11/2016)时,年龄应该是+1(例如年龄为 31 岁)。
我知道我们可以通过以下代码来实现这一点。但我正在寻找一种在选择新日期时获得新年龄的最佳方法。
var newDate = $("#NewDate").val();
if (newDate != null && newDate != '') {
var currDCD = new Date($("#CurrentDate").val());
var newDCD = new Date(newDate);
var yearsDiff = newDCD.getFullYear() - currDCD.getFullYear();
var day = 1000 * 60 * 60 * 24;
//Get last years days difference
var daysDiff = Math.floor((newDCD.setFullYear(currDCD.getFullYear() + (yearsDiff - 1)) - currDCD) / day);
var currAge = parseInt($("#CurrentAge").val());
//Set new owner age
$("#NewAge").val(currAge + (daysDiff > 182 ? yearsDiff : yearsDiff-1));
}
最佳答案
类似这样的内容应该会根据月份向您提供向下或向上舍入的年龄:
function getAge(birthday) {
var diff = new Date(new Date() - new Date(birthday))
return diff.getFullYear() - 1970 + (diff.getMonth()>=6?1:0)
}
其中生日是可以在 Date
的构造函数中使用的任何内容
关于javascript - 通过 jQuery/javascript 获取特定日期的新年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508997/