似乎很疯狂,但是如果日期字段大于当前日期,我无法找到一种方法来比较jhipster测试创建的html。
我尝试显示从数据库读取的日期,然后查看2020-12-12,然后尝试显示当前日期。在网上搜索,我发现可以获取当前日期:new Date()
。所以我尝试显示此内容,但运行页面时显示错误:
ERROR Error: Uncaught (in promise): Error: Template parse errors:
Parser Error: Unexpected token 'Date' at column 5 in [ {{new Date()}} ] in...
如何获取当前日期(用于检查从数据库读取的日期)?
这里是我需要检查日期的myclass.component.html的代码:
<div>
<jhi-alert-error></jhi-alert-error>
...
<div class="table-responsive" *ngIf="myclasses?.length > 0">
<table class="table table-striped" aria-describedby="page-heading">
<thead>
<tr jhiSort [(predicate)]="predicate" [(ascending)]="reverse" [callback]="transition.bind(this)">
<th...
</tr>
</thead>
<tbody>
<tr *ngFor="let myclasse of myclasses ;trackBy: trackId">
<td>{{myclass?.id}}</td>
...
<td>
{{ new Date() }}
</td>
...
通常,由于MomentJS库已经集成到JHipster中,因此使用日期更容易。
如果您想知道日期是否是将来的日期,可以在[entity].component.ts
中定义一个返回布尔值的函数,如下所示:
import * as moment from 'moment';
import { Moment } from 'moment';
...
isFutureDate(date: Moment): boolean {
return moment().isBefore(date);
}
然后在[entity].component.html
中可以这样称呼它:
<td>
Date is in the future: {{ isFutureDate(myclass.date) }}
</td>
myclass.date
是您要检查的日期。
如果您只需要知道该日期和现在之间的时差,则可以非常轻松地做到这一点。在您的...component.ts
中:
import * as moment from 'moment';
import { Moment } from 'moment';
...
getDateDiff(date: Moment): number {
const diff = date.diff(moment());
const duration = moment.duration(diff);
return duration.asHours();
}
以及您的...component.html
:
<td>
Difference in hours: {{ getDateDiff(myclass.date) | number: '2.0-0' }} hours
</td>
在这种情况下,getDateDiff()
将返回您作为参数传递的日期(myclass.date
)与当前日期(moment()
)之间的小时差。如果要检查的日期是过去的日期,它将是一个负数。
MomentJS是一个非常强大的库,您可以查看完整的文档here。另外,如果需要的话,有关我使用的方法的文档: