Javascript Date()以天为单位计算不工作的年龄
这是我的代码,取自这里:Javascript Date()以天为单位计算不工作的年龄,javascript,Javascript,这是我的代码,取自这里: var today=新日期(); 生日_val=$(“.datepicker”).val().split(“/”);//输入值 生日=新日期(生日[2]、生日[1]、生日[0])//生日对象 var age=today.getFullYear()-生日.getFullYear(); var m=today.getMonth()-生日.getMonth(); var d=today.getDay()-生日.getDay(); if(m
var today=新日期();
生日_val=$(“.datepicker”).val().split(“/”);//输入值
生日=新日期(生日[2]、生日[1]、生日[0])//生日对象
var age=today.getFullYear()-生日.getFullYear();
var m=today.getMonth()-生日.getMonth();
var d=today.getDay()-生日.getDay();
if(m<0 | |(m==0&&today.getDate()
除了一天之外,它的计算是正确的——没有考虑到这一点,我也不知道为什么。有人吗?编辑:这不是正确的答案,尽管OP上有这样的标记
您使用的方法不正确,无法检索当月的日期
Date.getDay
返回一周中的某一天
Date.getDate
返回当月的日期出了什么问题?你能举个例子吗?您知道getDay()返回的是一周中的哪一天(0-6)?您能举个例子吗?很抱歉,这是我的错误,我得到的值是错误的:生日=新日期(生日[2],生日[1],生日[0]);本应为生日=新日期(生日[2],生日[0]-1,生日[1]);抱歉,这是我的错误,我的值是错误的:生日=新日期(生日[2],生日[1],生日[0]);本应为生日=新日期(生日[2],生日[0]-1,生日[1]);但是答案是错误的,因为您甚至没有使用d
的值;根本原因完全是其他原因。
var today = new Date();
birthday_val = $(".datepicker").val().split('/'); // input value
birthday = new Date(birthday_val[2],birthday_val[1],birthday_val[0]); // birthday date object
var age = today.getFullYear() - birthday.getFullYear();
var m = today.getMonth() - birthday.getMonth();
var d = today.getDay() - birthday.getDay();
if (m < 0 || (m === 0 && today.getDate() < birthday.getDate()) ) {
age--;
}