如何检查来自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的日期是不是等于今天[重复]的主要内容,如果未能解决你的问题,请参考以下文章