Angular HTML: 将字符串日期时间与当前日期时间进行比较

Angular HTML: compare string datetime to current datetime

如何将“2022-01-07 15:43:00”字符串变量与 angular html *ngIf 中的当前日期时间进行比较?

请多多指教

您可以在 ngIf 指令中使用函数,例如 *ngIf="showBasedOnDate(date)" 在您的 TS 文件中创建此函数并在那里处理所有逻辑。 Return truefalse 显示元素。

<div *ngIf="showBasedOnDate(date)"> 
   I am shown
</div>

showBasedOnDate(date) {
 // here you can have as much logic as you would like, based on your needs. 
 return (date === new Date() );
}

问题是:这真的是你想要的吗?该元素仅在极短的时间内可见。我想您想在达到给定时间后显示一个元素。

另请记住,将方法绑定到模板通常被认为不是好的做法,因为它会在任何渲染周期中重新计算。 绑定到在给定时间发出的异步 Observable 是一种更好的方法。

因此您的绑定可能看起来像

*ngIf="(isNow$ | async)===true"

你的具体实现可能类似于

isNow$: Observable<boolean>;
...
const dateDifference = date-Date.now();
this.isNow$ = of(true).pipe(delay(dateDifference);

这基本上会让您计算时刻,然后从那时起显示 dom 内的元素。 如果你真的只想在时间相等的那一刻看到 DOM 元素并立即再次将其关闭,你应该将 Observable 重新发射为 false。