【问题标题】:How to check if a date from firebase is equal to Today [duplicate]如何检查来自firebase的日期是否等于今天[重复]
【发布时间】:2020-01-14 12:10:22
【问题描述】:

我有一个离子卡,可以显示从 firebase 读取的信息。 1 这样的信息是日期。 如果日期等于今天,那么我想做一些造型。

在我的 html ion-card-content 标签中,我有以下代码

<ion-card-content [ngClass]="isMatchDateToday(match?.date.seconds * 1000)">

我想调用一个函数,将日期作为参数传入,并将它与今天的日期进行比较。

   isMatchDateToday(date: Date){



    }

我真的不知道如何比较日期。我用过 today = date.now() 并尝试将其与我的日期进行比较,但是当 console.log 值时,它们具有不同长度的长数值。

我希望是这样的(伪代码)

isMatchDateToday(date: Date){
        var today = Date.now();
        if (date == today)
            {
            return "css-class-name";
            }
        }

【问题讨论】:

标签: html typescript firebase date ionic-framework


【解决方案1】:

示例 - (丢弃小时、分钟、秒)

// sample method to generate the Date object
const firetimestamp =  new Date(firebasetimestamp.seconds * 1000);
// sample dates
const entry1 = new Date('2019-09-12'); 
const entry2 = new Date('2019-09-13');

您可以选择使用 Date.prototype.toISOString()。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

export function Compare(value: Date): string {
  const today: Date = new Date();
  if (today.toISOString().substr(0, 10) === value.toISOString().substr(0, 10)) {
    return "success class-name";
  } else {
    return "error class-name";
  }
}

console.log(Compare(entry1));
console.log(Compare(entry2));

注意:从客户端而不是从服务器获取今天的日期

【讨论】:

  • 我的问题是,当我执行 value.toISOString() 时,我收到控制台错误“value.toISOString 不是函数”@yson
  • 有趣。 yson 链接的页面显示这应该适用于大多数现代环境。你在哪里运行这个?
  • 记住 toISOString() 是 javascript 日期对象的一个​​方法。不是firebase时间戳对象。在它的函数中,它表明它接收的参数是日期类型(因此,另一种类型的对象必须成为日期类型)。您正在使用 Firestore、实时数据库或云功能。
猜你喜欢
  • 2012-01-03
  • 2018-04-05
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多