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

时间:2018-05-29 15:25:07

标签: javascript date

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

{
    "dob": 1525219200
}

所以现在 dateOfBirth 就是:

  

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/>");

然而,我是一名初级开发者,我认为我不能正确理解我在做什么。任何和所有的帮助将不胜感激。

这是JSFIDDLE

2 个答案:

答案 0 :(得分:1)

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

todayInMilli = Math.round(new Date() / 1000);

接下来,你需要找到今天和DOB之间的差异,以毫秒为单位:

ageInMilli = todayInMilli - dob;

最后将毫秒转换为年:

age = ageInMilli / (60 * 60 * 24 * 365)

如果这对您有用,请告诉我

https://jsfiddle.net/h4a8m7a5/

答案 1 :(得分:0)

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

var age = new Date();
age = moment.duration(now - dob).years();


console.log("dob: " + moment(dob).format('DD/MM/YYYY') + "<br/>");
console.log("now: " + moment(now).format('DD/MM/YYYY') + "<br/>");
console.log("age: " + age + " years<br/>");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

你需要使用时刻js。不要试图重新发明。

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

var age = new Date();
age = moment.duration(now - dob).years();


console.log("dob: " + moment(dob).format('DD/MM/YYYY') + "<br/>");
console.log("now: " + moment(now).format('DD/MM/YYYY') + "<br/>");
console.log("age: " + age + " years<br/>");