如何检查来自firebase的日期是不是等于今天[重复]

Posted

技术标签:

【中文标题】如何检查来自firebase的日期是不是等于今天[重复]【英文标题】: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";
            
        

【问题讨论】:

yson 的答案会起作用,但这里有更多选项:***.com/a/43855221、***.com/a/31764918,可能还有更多选项:google.com/… 我对@yson 的回答的问题是我得到控制台错误'value.toISOString 不是函数' 【参考方案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、实时数据库或云功能。

以上是关于如何检查来自firebase的日期是不是等于今天[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在特定时间触发来自firebase的通知?

如何检查今天是不是在 Twig 的两个日期之间?

检查给定日期是不是存在于从日期到今天之间

通过 firebase 云消息检查设备是不是离线

检查来自 db 的日期是不是从当前日期过去两周

检查 mongodb 中的日期时间对象是不是为 UTC 格式或不是来自 python