如何返回用户的出生年龄

时间:2018-12-19 09:43:39

标签: javascript date object

这些是问题的标准;

  1. 将用户的年龄返回数字。
  2. 您可以假定传递的用户将始终具有'yearOfBirth'属性。

我的回答是;

function getUserAge (user) {
    const year = new Date().getFullYear()
    return year - user.yearOfBirth
}

我不确定为什么这不能恢复用户的年龄。有人有什么建议吗?

我的答案已与此测试

describe("getUserAge", () => {
    it("returns the age of the passed user based on its yearOfBirth property", () => {
        const currentYear = new Date().getFullYear();
        const user = {
            yearOfBirth: 1989
        };
        expect(getUserAge(user)).to.equal(currentYear - 1989);
    });
});

2 个答案:

答案 0 :(得分:1)

您需要考虑用户今年是否生日。对于6月出生的人,您当前的实现在1月和12月返回相同的值,但是,当然,12月的值应比1月的值高1。

如果您只需要工作yearOfBirth,就无法准确返回他们的年龄。您还需要月份和日期。 (取决于您想要的学究程度,还取决于小时,分钟和秒;但是大多数人并不是那么学究。)

答案 1 :(得分:0)

您可以使用出生日期的时间戳记与现在之间的时差。

var date_birth= new Date("2010/11/3");
var timestamp_birth= date_birth.getTime();
var now= Date.now();

var diffTimestamp= now - timestamp_birth;
  // ms to secend / second to minute / minute to hour / hour to days of year
console.log( diffTimestamp/1000/60/60/24/365 );

*如您所见,仅知道年份还不够