如何用 angular 管道比较日期?
how to compare dates with angular Pipe?
为什么这个过滤器不起作用?
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'inProcess'
})
export class InProcessPipe implements PipeTransform {
transform(events: any): any {
if (!events) return events
return events.filter(function (event) {
return event.dateStart < Date.now();
})
}
}
这是我尝试使用管道的地方,我想带来所有迟到的 事件 ,< 比 Date.now()
、属性 dateStart 在我的 express 和 mongoose 后端是一个 String
值,但它在前端被保存为 Date
,那么我该怎么做呢?
<h2 class="text-left text-muted title-margin-top title-style">Late</h2>
<div *ngFor="let event of events | inProcess">
<div *ngIf="event.isCompleted === true">
<div class="card">
<div class="row">
<div class="container">
<div class="single-event col-md-10 col-md-offset-1">
<div class="event-name">
<a [routerLink]="['/event', event._id]">
<h3>{{event.name}}</h3>
</a>
</div>
<p>
<span class="glyphicon glyphicon-file"></span>
obra: {{ event.section.name}}
</p>
<p>
<span class="glyphicon glyphicon-time"></span>
publicado en: {{ event.created_at | date: 'dd / MM / yyyy' }}
</p>
<hr>
<div class="row">
<div class="container">
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
<p class="card-text CardInfo text-center">Fecha Inicio</p>
<div class="text-center">
{{ event.dateStart | date: 'dd-MM-yyyy' }}
<hr class="style1">
</div>
</div>
你的比较总是return错误。在比较时间戳之前尝试先解析字符串:
transform(events: any): any {
if (!events) return events
return events.filter(function (event) {
return Date.parse(event.dateStart) < Date.now();
})
}
为什么这个过滤器不起作用?
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'inProcess'
})
export class InProcessPipe implements PipeTransform {
transform(events: any): any {
if (!events) return events
return events.filter(function (event) {
return event.dateStart < Date.now();
})
}
}
这是我尝试使用管道的地方,我想带来所有迟到的 事件 ,< 比 Date.now()
、属性 dateStart 在我的 express 和 mongoose 后端是一个 String
值,但它在前端被保存为 Date
,那么我该怎么做呢?
<h2 class="text-left text-muted title-margin-top title-style">Late</h2>
<div *ngFor="let event of events | inProcess">
<div *ngIf="event.isCompleted === true">
<div class="card">
<div class="row">
<div class="container">
<div class="single-event col-md-10 col-md-offset-1">
<div class="event-name">
<a [routerLink]="['/event', event._id]">
<h3>{{event.name}}</h3>
</a>
</div>
<p>
<span class="glyphicon glyphicon-file"></span>
obra: {{ event.section.name}}
</p>
<p>
<span class="glyphicon glyphicon-time"></span>
publicado en: {{ event.created_at | date: 'dd / MM / yyyy' }}
</p>
<hr>
<div class="row">
<div class="container">
<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
<p class="card-text CardInfo text-center">Fecha Inicio</p>
<div class="text-center">
{{ event.dateStart | date: 'dd-MM-yyyy' }}
<hr class="style1">
</div>
</div>
你的比较总是return错误。在比较时间戳之前尝试先解析字符串:
transform(events: any): any {
if (!events) return events
return events.filter(function (event) {
return Date.parse(event.dateStart) < Date.now();
})
}