管道与MomentJS没有返回正确的时间差

时间:2018-02-05 22:24:41

标签: angular ionic3 momentjs

我在Ionic(Angular)中构建了一个管道,用于将时间转换为从现在开始的时间'。

这是我使用的地方:

 dateOfEvent = '2018-02-05 19:45:40';

 <p>{{dateOfEvent | timeago}}</p>
  

预期产量:40分钟前

     

返回输出:2小时前

这是我的管道

import { Pipe, PipeTransform } from '@angular/core';
import * as moment from 'moment';
moment.locale('pt-br');

@Pipe({
  name: 'timeago',
})
export class TimeagoPipe implements PipeTransform {

  transform(value) {

      let timeAgo = moment(value).fromNow();
      return timeAgo;


  }
}

你能看出我做错了吗?

1 个答案:

答案 0 :(得分:0)

刚刚解决了这个问题。我不知道这是不是最好的方法,但是如果有人有一个更好的方法,只是发布在这里,我会改变最佳答案。

我所做的只是将dateOfEvent格式化为片刻值。

然后我根据格式化的值得到timeAgo,而不是直接来自db的那个(我的数据库中的那个也是当时生成的,但是某些时候它没有认识到从db检索的那一刻)

所以修正后的管道是:

transform(value) {

      let formatted = moment().format(value);
      let timeAgo = moment(formatted).fromNow();

      return timeAgo;

}

感谢您的帮助!