【发布时间】:2021-08-22 08:29:49
【问题描述】:
我遇到了和这里所说的一样的问题:
convert string to Time format in typescript
我无法转换 SQL 24 小时时间类型,例如“15:00”,我在日志中收到此错误
InvalidPipeArgument: 'Unable to convert "15:00" into a date' for pipe 'DatePipe'
我了解 DatePipe 仅支持转换某些格式,字符串时间不是其中之一。我找不到任何文档详细说明如何将字符串时间转换为这些可接受的格式,因此我放弃了 DatePipe 的想法。
然后有 momentJs,这是一个很大的帮助,但我在将它集成到动态材料表中时遇到了一些麻烦。因为据我了解,它只能在 typescript 中使用,不像 datePipe 可以直接在 html 中使用。如我的代码中所示,我只能从第一个数组中获取时间。我尝试循环,但我只得到最后一个值。
HTML:
<ng-container matColumnDef="start_time">
<th class="font" mat-header-cell *matHeaderCellDef mat-sort-header>Start Time</th>
<td class="font-content" mat-cell *matCellDef="let row">{{ convertedTime }}</td>
</ng-container>
打字稿:
grabTime(){
this.dataService.grabTimeContent().subscribe(res=>{
this.post= res.tableTime;
this.timeChange = res.table[0].start_time;
this.convertedTime = moment(this.timeChange, 'HH:mm').format('hh:mm A');
this.dataSource = new MatTableDataSource(this.post);
});
}
内容:
tableTime:
0:
{
start_time: "10:08"
}
1:
{
start_time: "15:25"
}
2:
{
start_time: "16:58"
}
3:
{
start_time: "20:18"
}
我愿意接受诸如使用新软件包之类的建议。我知道我上面提供的代码只会显示数组 0,但我不知道如何将它与动态表集成。
【问题讨论】:
标签: angular typescript momentjs