ion-datetime-从出生日期算起年龄

时间:2019-08-30 13:13:18

标签: typescript ionic-framework ionic4

我正在使用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;
} 

1 个答案:

答案 0 :(得分:2)

问题可能出在您打电话的地方。

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

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;
 }