jhipster 和当前日期显示和检查

jhipster and current date to display and check

看起来很疯狂,但如果日期字段大于当前日期,我找不到在 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 中定义一个 return 是布尔值的函数,如下所示:

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() 将 return 您作为参数传递的日期 (myclass.date) 与当前日期 (moment()) 之间的小时差。如果要检查的日期是过去的日期,它将是一个负数。

MomentJS 是一个非常强大的库,您可以查看完整的文档 here。另外,如果需要,与我使用的方法相关的文档:

  • isBefore(): 一个日期是否在另一个日期之前
  • diff(): 两个日期之间的毫秒差
  • duration():可轻松处理持续时间的包装器
  • asHours(): 获取持续时间的小时数