ion-datetime - 根据出生日期计算年龄
ion-datetime - calculate age from birthdate
我正在使用 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;
}
问题可能出在您调用它的地方。
它与打字稿项目混淆,因为一切都是异步的,它可以 运行 在填充某些东西之前看起来它不起作用。
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;
}
我正在使用 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;
}
问题可能出在您调用它的地方。
它与打字稿项目混淆,因为一切都是异步的,它可以 运行 在填充某些东西之前看起来它不起作用。
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;
}