2

我有一个角度应用程序,我在其中使用时间戳将记录存储到firebasefirebase.database.ServerValue.TIMESTAMP

现在我想检查添加到数据库的时间戳是否超过五分钟。

我尝试在我的组件中使用 moment ,但它只是不工作。它正在提供虚假数据。我猜存储在 Firebase 中的数据是在我在印度的时代,所以如何让时刻在 Angular 中工作。

我正在使用 Angular 2 Moment。

这是我试过的

import * as moment from 'moment/moment';

      edit(i:number){
        const val = moment.unix(this.comments[0].createdAt);// the value is a epoch time that is the standard that is stored in firebase
        const present = moment().unix();

        console.log(moment.duration(val.diff(present)));
      }

this.comments 在 date 中使用时的值

let ts = new Date(this.comments[0].createdAt * 1000);= 8 月 5 日星期三 49474 20:09:20 GMT+0530(印度标准时间)

就目前而言,它就像 - 2017 年 7 月 4 日星期二 14:56:46 GMT+0530(印度标准时间)

请帮助为什么它的评论数据没有在 7 月 3 日的时间下沉,因为它是在那天在 firebase 上添加的

4

2 回答 2

2
const now = new Date();
const ts = new Date(this.comments[0].createdAt);
const diff = now.getTime() -  ts.getTime();

console.log(diff > 5 * 60 * 1000); // this will give you true or false
于 2017-07-04T10:25:18.247 回答
0

您可以使用 javascript Date 对象进行数学运算,即

let now = new Date();
let ts = new Date(this.comments[0].createdAt * 1000);
let diff = now.getTime() - ts.getTime();

console.log(diff > 5 * 60 * 1000);
于 2017-07-03T19:14:24.323 回答