【问题标题】:How to get the age from birth date in nodejs如何在nodejs中从出生日期获取年龄
【发布时间】:2021-09-01 06:14:42
【问题描述】:

我正在创建一个输入用户详细信息的 api,我想计算用户添加出生日期时的年龄,这就是我正在做的事情

  var age
  var today = new Date();
  var birthday=Date(req.body.DOB)//here i am getting the dob value 
    var age = today.getFullYear() - birthday.getFullYear();
    var m = today.getMonth() - birthday.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthday.getDate())) {
        age--;
    }
    console.log("getage ", age);

var birthday=Date(req.body.DOB) 我在这里得到了req.body.DOB 的值,但它在birthday 变量上给了我InvalidDate,而我的DOB 变量类型是String

它也发送此错误TypeError: birthday.getFullYear is not a function

请帮助如何做到这一点。

【问题讨论】:

  • req.body.DOB 收到的值是多少?
  • 在第 3 行,我认为应该是 new Date(req.body.DOB) 而不是 Date(req.body.DOB)
  • 一个日期,像这样12-09-2002
  • @PyxlDavon 它仍在向我发送 InvalidDate
  • 我将 DOB 类型更改为日期,但还是同样的错误

标签: node.js date


【解决方案1】:

您可以使用 npm 包年龄计算器https://www.npmjs.com/package/age-calculator 它工作得很好我在我的项目中使用它,你可以使用它来根据需要使用时刻https://www.npmjs.com/package/moment 来形成日期。我也在添加示例代码


const moment = require('moment')

//Calculate Age Modules
let { AgeFromDateString } = require('age-calculator');

var date = "27-10-2001"
var EditedDob = moment(data, "DD-MM-YYYY").format('YYYY-MM-DD')

//console.log(EditedDob)

let ageFromString = new AgeFromDateString(EditedDob).age;

如有任何疑问,请随时回复。

【讨论】:

  • 感谢您的回答,但我想在不使用包的情况下解决此问题!
【解决方案2】:

我用这个方法来解决这个问题


var dob = req.body.DOB;
    var datesplit=dob.split('-');
    var year = datesplit[2]
    var month = datesplit[1]
    var day = datesplit[0]
    var age = today.getFullYear() - year;
    if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
      age--;
    }

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 2023-03-05
    • 2020-12-29
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多