Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从API返回的时间戳获取用户年龄_Javascript_Date - Fatal编程技术网

Javascript 从API返回的时间戳获取用户年龄

Javascript 从API返回的时间戳获取用户年龄,javascript,date,Javascript,Date,我有一个API,它将用户dob作为变量返回,名为dateOfBirth,它来自API,如下所示: { "dob": 1525219200 } 所以现在出生日期是: 1525219200 如何从上面的Int中获取用户年龄 我试过: var dob = 1525219200; var now = Date.now(); var age = new Date(); age = (dob - now).toUTCString() document.write("dob: " + dob +

我有一个API,它将用户dob作为变量返回,名为dateOfBirth,它来自API,如下所示:

{
    "dob": 1525219200
}
所以现在出生日期是:

1525219200

如何从上面的
Int
中获取用户年龄

我试过:

var dob = 1525219200;
var now = Date.now();

var age = new Date();
age = (dob - now).toUTCString()

document.write("dob: " + dob + "<br/>");
document.write("now: " + now + "<br/>");
document.write("age: " + age + "<br/>");
var-dob=1525219200;
var now=Date.now();
变量年龄=新日期();
年龄=(dob-now).toutString()
文件。书写(“dob:+dob+”
); 文件。写入(“现在:+现在+”
); 文件。写入(“年龄:“+age+”
);
然而,我是一名初级开发人员,我认为我没有正确理解我在做什么。我们将非常感谢您的任何帮助


这是一个

我想那是毫秒。然后需要以毫秒为单位获取今天的日期:

todayInMilli = Math.round(new Date() / 1000);
ageInMilli = todayInMilli - dob;
接下来,您需要以毫秒为单位找出今天和DOB之间的差异:

todayInMilli = Math.round(new Date() / 1000);
ageInMilli = todayInMilli - dob;
最后将毫秒转换为年:

age = ageInMilli / (60 * 60 * 24 * 365)
请让我知道这是否对你有效

var-dob=1525219200;
var now=Date.now();
变量年龄=新日期();
年龄=时刻。持续时间(现在-出生日期)。年();
console.log(“dob:+moment(dob).format('DD/MM/YYYY')+”
); console.log(“现在:+时刻(现在).格式('DD/MM/YYYY')+”
); console.log(“年龄:+age+”年

对于年龄,您不需要指定为日期,然后重新指定。尝试
age=newdate(dob-now)
该数字似乎是UNIX时间值。要转换为javascript日期,请乘以1000并使用日期构造函数:
newdate(1525219200*1000)
。要从日期中获得一个人的年龄,请查看副本(有许多答案,有些比其他答案更好)。这是一个相当粗略的近似值,因为它没有考虑闰年。这似乎不起作用。看看:-上面说的年龄是48岁,但是1988年出生的人根据月份的不同会是29/30。我更新了我的答案并添加了JSFIDLE。它现在应该可以工作了@markthankyou.:)我已经接受了答案。如果你能添加评论并解释它在做什么以及为什么,那就更棒了。作为一名大三学生,我需要学习的不仅仅是复制代码,我认为这也会帮助其他人。@Mark要获得准确的公式,请参阅重复问题。这将1525219200视为等同于1970年1月18日,但更可能的是它应该乘以1000(将秒转换为毫秒)。但OP确实应该澄清这一点。