我可以在* ngFor中将字符串转换为日期吗?

时间:2018-10-23 03:42:23

标签: angular primeng

我将Angular与PrimeNg库一起使用,我具有以下组件:

<td *ngFor="let item of items">
  <p-calendar
    showTime="true"
    [(ngModel)]="item.testDate">
   </p-calendar>
</td>

我从数据库中以字符串形式获取值item.testDate。但是,我需要它的日期类型。

有没有办法我可以用类似角度表达式的方法做到这一点。类似于:[(ngModel)]="new Date(item.testDate)"

还是禁止我如何将该字符串转换为日期?

3 个答案:

答案 0 :(得分:2)

我建议您需要在服务中将其转换为Date(在获取数据时,将其转换),控制器或过滤器,而不是视图。保持视图简单。

答案 1 :(得分:0)

Angular具有内置的日期管道,可以根据区域设置规则将1.日期对象2.数字或3. ISO字符串转换为日期值。我想这是您打算做的,因为您尚未在问题中解决此问题。

它可以用作

{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

有关更多参考,Angular Data Pipe

答案 2 :(得分:0)

我认为您必须使用带角度的日期管道。 但是您不能直接在ngModel中使用它。

Ex;

<td *ngFor="let item of items">
  <p-calendar showTime="true" [(ngModel)]="(item.testDate | date:'fullDate')" 
     (ngModelChange)="item.testDate = $event">
  </p-calendar>
</td>

请通过以下链接查询日期类型: https://angular.io/api/common/DatePipe