我使用这个`
从jsonvar date=data.dob;
获得DOB
var today = new Date(86400000);
var date=data.dob;
var timeDiff = Math.abs(today - date);
rangeOneMin1 = parseInt(timeDiff);
var age1 = Math.ceil(rangeOneMin1 / (1000 * 3600 * 24)) / 365;
通过在age1中应用上述代码我正在获取NaN请帮助,如果您想要更多内容请告诉我
答案 0 :(得分:3)
首先,var today = new Date(86400000);
今天不是,但很久以前。口译员甚至不打算计算这个日期,所以它是最小的可能日期:
Fri Jan 02 1970 01:00:00 GMT+0100 (CET)
要获取今天的日期对象,只需构造不带参数的Date
。然后,您还需要为Date
字符串日期创建新的dob
对象。
还有一件事,你不需要parseInt
,因为在算术Date
操作期间隐式类型转换为数字,因此两个-
对象之间的差异将是整数值。
最后,您可能也希望将/ 375
置于Math.ceil
之下。
结果将如下所示:
var today = new Date();
var date = new Date(data.dob);
var timeDiff = Math.abs(today - date);
var age1 = Math.ceil(timeDiff / (1000 * 3600 * 24) / 365);
答案 1 :(得分:2)
考虑使用var date= data.dob
的日期,'08/25/1990'
是var difMS = Date.now() - (new Date(date).getTime()); //Difference in milliseconds from dob to current date
var refDate = new Date(difMS); //Reference date
console.log(Math.abs(refDate.getUTCFullYear() - 1970)); //years passed till 1970
形式的字符串,您可以执行以下操作来获取年龄
{{1}}
答案 2 :(得分:1)
嘿如果你想计算与年,月和日的确切差异,那么下面将帮助你:
var today = new Date();
var date = new Date('07/04/1985');
var year=today.getFullYear()-date.getFullYear();
var month = today.getMonth() - date.getMonth();
if (month < 0 || (month === 0 && today.getDate() < date.getDate())) {
year--;
month=month+12;
}
var days = today.getDate() - date.getDate();
if (days < 0 || (days === 0 && today.getDate() < date.getDate())) {
month--;
days=days+30;
}
alert(year+"---"+month+"---"+days)
您需要更多代码来计算天数,因为我已将30天作为标准,有些月份需要31天或29天,因此您需要检查闰年和一个月中的31天,您将获得确切的日期差异
由于
答案 3 :(得分:0)
Javascript中不允许使用直接日期差异,因此您获得了NaN 而是使用时间来获取日期差异,然后将其转换为年份 请找到相同的
下面的功能function GetAge() {
var one_year=(1000*60*60*24);
var birthDate = new Date(2010,01,01)
var today = new Date();
var todayTime = today.getTime();
var birthDateTime=birthDate.getTime();
var difference_ms = todayTime-birthDateTime;
return Math.round((difference_ms/one_year)/365);
}