【问题标题】:Angular calculating age from Dob来自 Dob 的角度计算年龄
【发布时间】:2020-01-02 23:49:02
【问题描述】:

我正在尝试从 dob 计算年龄,但是当我打印年龄时它的 0 这是我的代码:

我将不胜感激

let Dob:any = new Date(patientRecord.patient_dob);
let today:any = new Date();
let timediff = Math.abs(today - Dob.getTime() );
let Age = Math.floor((timediff / (1000 * 3600 * 24)) / 365);
console.log(Age);

【问题讨论】:

    标签: angular7


    【解决方案1】:

    您分享的代码非常好(乍一看)。

    是什么让它不起作用,可能是输入日期格式。 (因为我用纯 javascript 进行了一次更改,但我运行了相同的代码)

    let dob = new Date('12/31/1990'); // mm/dd/yyyy
    let today = new Date();
    let timediff = Math.abs(today - dob);
    let Age = Math.floor((timediff / (1000 * 3600 * 24)) / 365);
    console.log("Age: ", Age);

    查看硬编码日期格式。还有timediff的计算逻辑。

    即使你这样做dob.getTime(),结果仍然是一样的。

    所以,所有都只是指向您正在传递的输入。

    干杯!

    【讨论】:

    • 即使我得到了改变的结果。我只是拿出了 getTime() 函数。无论如何谢谢
    【解决方案2】:

    建议使用 momentJS 使其变得简单 (https://momentjs.com/docs/#/durations/years/) 然后您可以执行以下操作:

    const dob = moment(patientRecord.patient_dob);
    const now = moment();
    age = now.subtract(dob.duration()).duration().asYears();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 2013-01-23
      相关资源
      最近更新 更多