根据出生日期和当前日期进行年龄验证

wincod75

因此,我需要通过从用户输入的输入字段的转换日期中减去“今天”日期来计算年龄。尽管它需要清理,下面的代码工作,我必须发挥创意为RN使用不同的JS执行环境......看到这里

我的问题是,没有在此代码段“ b.getMonth()+ 1”中添加“ +1”,那么每次对日期进行减法运算都会减少1个月。当我添加“ +1”时,它就像一个超级按钮,为什么呢?如果这是合乎逻辑的解决方法,那么我不介意保留“ +1”,但是我当然想知道为什么“ +1”是必要的。

另外,完全可以使用改进的解决方案来解决此问题,请记住,我有一个简单得多的函数,在调试器打开时效果很好,关闭调试器后不起作用,请参见上面的链接。

getVerifyBirthday(birthday) {
    const b = new Date();
    var verify = birthday.length;

    const utc2 = Date.UTC(b.getFullYear(), b.getMonth() + 1, b.getDate());

    if (verify === 10) {
      const splitBirth = birthday.split('-');
      var mydate = new Date(splitBirth[2], splitBirth[0], splitBirth[1]);

      const a = mydate;
      const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());

      const diffTime = Math.abs(utc2 - utc1);
      const diffYears = (diffTime / (3.15576e+10));

      this.setState({ diffYears: diffYears});

      return diffYears >= 13;
    } else {}
  }

更新资料

我最终重构了我的原始函数,由于月份从0开始,所以(+1)保留在月份上,如下所述。我仍然不得不拆分两个日期,当我不拆分两个日期时,我的年龄又回到了NaN / Undefined;不知道这是否可以追溯到RN执行环境与浏览器,但我离题了。

叶夫根·戈本科夫(Yevgen Gorbunkov)

我会在这里提出一些自己的建议:

  • 无需费时地使用UTC日期(以确保其所在时区的用户已经达到13岁,并假设他或她在同一时区出生);
  • 无需拆分mm-dd-yyyy日期字符串即可将Date转换为,它可以由new Date()
  • 将年份计算为365.25天有一定的误差范围,具体取决于用户出生年份以来经过的确切leap年数量,而可以将整个年份与日期进行比较

对我来说,将日期字符串分解成几天,几个月和几年,并根据整年的差异减去1年(如果该人今年尚未庆祝生日)做出决定,这更有意义:

const today = new Date().toISOString().slice(0,10), // yyyy-mm-dd
      birthday = '1982-06-21',
      [bYear, bMonth, bDay] = birthday.split('-'),
      [tYear, tMonth, tDay] = today.split('-'),
      diffYears = tYear - bYear - (bMonth > tMonth || bDay > tDay ? 1 : 0)

console.log(diffYears)
.as-console-wrapper{min-height:100%;}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据出生日期和当前日期的输入获取某人的年龄

来自分类Dev

用Java计算带有当前日期和出生日期的年龄

来自分类Dev

根据出生日期计算年龄

来自分类Dev

根据出生日期计算年龄

来自分类Dev

根据出生日期搜索用户年龄

来自分类Dev

从PHP出生日期起的基本年龄验证

来自分类Dev

出生日期,加入日期和离开日期的验证

来自分类Dev

从出生日期算起年龄

来自分类Dev

使用出生日期计算年龄

来自分类Dev

使用出生日期计算年龄

来自分类Dev

出生日期验证持续显示

来自分类Dev

出生日期的DatePicker验证

来自分类Dev

根据出生日期为dd / mm / yyyy日期格式计算年龄

来自分类Dev

熊猫从日期获取年龄(例如:出生日期)

来自分类Dev

出生日期与当前日期之间的天差计算

来自分类Dev

出生日期与当前日期之间的天差计算

来自分类Dev

如何通过从出生日期中减去当前年份来获得年龄

来自分类Dev

出生日期,加入日期和离开日期的日期验证

来自分类Dev

根据出生日期计算特定年龄范围内的用户数

来自分类Dev

如何在SQL中根据出生日期计算年龄(以年为单位)

来自分类Dev

如何在SQL中根据出生日期计算年龄(以年为单位)

来自分类Dev

将列的出生日期更改为年龄

来自分类Dev

从出生日期起用小数点计算年龄

来自分类Dev

从出生日期开始的MySQL年龄(忽略null)

来自分类Dev

从MySQL中出生日期算起年龄

来自分类Dev

在Java中从年龄查找出生日期

来自分类Dev

SQL Server从varchar出生日期开始计算年龄

来自分类Dev

Rails在基于出生日期的视图中显示年龄

来自分类Dev

在Java中从年龄查找出生日期

Related 相关文章

热门标签

归档