【问题标题】:ion-datetime - calculate age from birthdateion-datetime - 从出生日期计算年龄
【发布时间】:2019-08-30 13:13:18
【问题描述】:

我正在使用 ion-datetime 选择器来获取用户的出生日期。我想根据他们的输入计算用户的年龄。不知道为什么以下不起作用...

html

<ion-datetime [(ngModel)]="userInfo.dateOfBirth"></ion-datetime>

打字稿

public ageFromDOB(dateOfBirth) {
  const today = new Date();
  const birthdate = new Date(dateOfBirth);
  this.userInfo.age = today.getFullYear() - birthdate.getFullYear();
  const month = today.getMonth() - birthdate.getMonth();
  if ( month < 0 || (month === 0 && today.getDate() < birthdate.getDate())) {
    this.userInfo.age--;
  }
  return this.userInfo.age;
} 

【问题讨论】:

    标签: typescript ionic-framework ionic4


    【解决方案1】:

    问题可能出在你调用它的地方。

    这与打字稿项目混淆了,因为一切都是异步的,它可以在填充某些内容之前运行并且看起来好像它不起作用。

    ion-datetime 有一个 ionChange 事件:

    ionChange ion-datetime - Ionic Documentation

    您应该在日期时间更改时更新年龄:

    <ion-datetime [(ngModel)]="userInfo.dateOfBirth" (ionChange)="ageFromDOB($event)"></ion-datetime>
    

    我认为你仍然需要做一些功课:

    public ageFromDOB(dateOfBirth) {
      console.log(dateOfBirth);
    }
    

    然后看看提供的日期是什么格式...看起来它可能是一个对象但我只是looking at github issues,这似乎是在说:

     updateMyDate($event) {
        const day: number = $event.detail.value.day.value;
        const month: number = $event.detail.value.month.value;
        const year: number = $event.detail.value.year.value;
     }
    

    【讨论】:

    • 谢谢。返回的是这样的字符串:2001-05-30T21:18:04.162+01:00
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多