我在我的应用中注册了一些用户的出生日期。我正试图建立一个名为“年龄”的字段,该字段应显示一个数字,表示自出生至今的年数。
即;
我有一位用户 01-jan-2017 (今天是04-feb-2018)
年龄输出应为: 1岁
和
我有一位用户 05-feb-2017 (今天是04-feb-2018)
年龄输出应为: 0岁
我尝试了很多东西......将新的Date()转换为milis中的时间并在milis中减去新的Date(birthdate)。然后用dif和转换成年份来创建一个新的日期。但它总是没有返回正确的年数......
最后,我试图实现这篇帖子Convert birthday to age in angularjs的答案,其中有与I完全相同的主要问题。我甚至看到有人评论“谢谢这个效果很好”等。 ..它有28票。 但我仍然没有得到正确的值(年)....为什么!! ??
这是我的实施:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'birthdate'
})
export class BirthdatePipe implements PipeTransform {
transform(date: any, args?: any): any {
const ageDifMs = Date.now() - new Date(date).getTime();
const ageDate = new Date(ageDifMs);
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
}
我测试了以下日期(请记住今天是:04-feb-2018):
01-feb-2017 | birthdate = 0 should be 1
18-jan-2017 | birthdate = 1 should be 1
22-jan-2017 | birthdate = 1 should be 1
31-jan-2017 | birthdate = 0 should be 1
根据他们的出生日期而不使用某些花哨的框架,是否真的应该很难计算一个人的生活年限?真的可以吗?还是我错过了什么?为什么另一个问题中的人在该代码中取得了成功?是一个打字稿/角度2的差异导致它失败,因为它似乎工作在js / angular1 ....?