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 true
或 false
显示元素。
<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。
如何将“2022-01-07 15:43:00”字符串变量与 angular html *ngIf
中的当前日期时间进行比较?
请多多指教
您可以在 ngIf
指令中使用函数,例如 *ngIf="showBasedOnDate(date)"
在您的 TS 文件中创建此函数并在那里处理所有逻辑。 Return true
或 false
显示元素。
<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。