【问题标题】:How do I get the user's age in years如何获取用户的年龄(以年为单位)
【发布时间】:2021-05-30 13:38:03
【问题描述】:

我想在 JavaScript (ECMA) 中使用GeolocationDate 来询问用户在哪里 以及他们的出生时间并将其转换为年份。我问他们出生在哪里,因为我需要考虑不同的时区。

到目前为止,我的函数会返回用户的年龄:

function birth() {
  var their_birth_day = new Date("18 May 2005"); // Just as an example
  var today = new Date();

  var ms_old = today.getTime() - their_birth_day.getTime();
  var yrs_old = ms_old/3.154e+10;
  return yrs_old;
}

但是我如何使用他们的位置来使其更准确?

【问题讨论】:

  • 你能解释更多吗?
  • 另外请告诉我 yrs_old 表达式是什么
  • 为什么需要 Geolocation API 来获取用户出生地?您提到时区,您可以使用 Date().getTimezoneOffset()
  • @Tunjay 也许我不知道,我只是需要一种方法来解决时区差异,从而使我的 yrs_old 变量不精确。
  • @me.nkr yrs_old 是用户生日到今天之间的时间量,以年为单位。换句话说,用户的年龄。我没有四舍五入,但我会将其四舍五入到小数点后 3 位(但忽略这一点,因为这对这个问题并不重要)。

标签: javascript date browser geolocation ecma


【解决方案1】:
function getAge( dateString ) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}

【讨论】:

    猜你喜欢
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多