jhipster和要显示和检查的当前日期

问题描述 投票:2回答:1

似乎很疯狂,但是如果日期字段大于当前日期,我无法找到一种方法来比较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>
 ...
angular typescript jhipster
1个回答
3
投票

通常,由于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。另外,如果需要的话,有关我使用的方法的文档:

  • isBefore():日期是否在另一个日期之前
  • diff():两个日期之间的时差,以毫秒为单位
  • [duration():包装器可轻松使用持续时间]
  • [asHours():获取持续时间中的小时数
© www.soinside.com 2019 - 2024. All rights reserved.