Javascript 我只想用DOB来计算年龄

Javascript 我只想用DOB来计算年龄,javascript,json,Javascript,Json,我从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中应用上述代码,我

我从json
var 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。请帮助。如果您需要更多信息,请告诉我。首先,
var today=新日期(86400000)不是今天,而是很久以前了。口译员甚至不用计算这个日期,所以它是可能的最小日期:

Fri Jan 02 1970 01:00:00 GMT+0100 (CET)
要获得今天的日期对象,只需构造不带参数的
date
。然后还需要为
dob
字符串日期创建新的
Date
对象

还有一件事,您不需要
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);

首先,
var今日=新日期(86400000)不是今天,而是很久以前了。口译员甚至不用计算这个日期,所以它是可能的最小日期:

Fri Jan 02 1970 01:00:00 GMT+0100 (CET)
要获得今天的日期对象,只需构造不带参数的
date
。然后还需要为
dob
字符串日期创建新的
Date
对象

还有一件事,您不需要
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);

考虑到您使用
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

考虑到您使用
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

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);
}

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);
}

嘿,如果您想计算年、月和日的确切差异,那么以下内容将帮助您:

    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)
var today=新日期();
var日期=新日期('07/04/1985');
var year=today.getFullYear()-date.getFullYear();
var month=today.getMonth()-date.getMonth();
如果(月<0 | |(月==0&&today.getDate()
你需要更多的代码来计算天数,因为我以30天为标准,有些月份有31天或29天,所以你需要检查闰年和一个月内的31天,你会得到一个确切的日期差


谢谢

嘿,如果您想计算年、月、日的精确差值,那么以下内容将帮助您:

    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)
var today=新日期();
var日期=新日期('07/04/1985');
var year=today.getFullYear()-date.getFullYear();
var month=today.getMonth()-date.getMonth();
如果(月<0 | |(月==0&&today.getDate()
你需要更多的代码来计算天数,因为我以30天为标准,有些月份有31天或29天,所以你需要检查闰年和一个月内的31天,你会得到一个确切的日期差


谢谢

数据。dob
以毫秒为单位?从我得到的JSON日期开始,就像2015年1月21日使用日期=新日期(data.dob)
data.dob
以毫秒为单位?从我得到的JSON日期开始,就像2015年1月21日使用日期=新日期(data.dob);很高兴这有帮助……)很高兴这有帮助……)var一年实际上是一天。var一年实际上是一天。