将角度2+(打字稿)

时间:2018-02-04 17:51:00

标签: angularjs date typescript filter mean-stack

我在我的应用中注册了一些用户的出生日期。我正试图建立一个名为“年龄”的字段,该字段应显示一个数字,表示自出生至今的年数。

即;

  

我有一位用户 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 ....?

0 个答案:

没有答案