【问题标题】:How to get HH:MM using pipe in angular 4如何在角度 4 中使用管道获得 HH:MM
【发布时间】:2018-10-24 21:34:28
【问题描述】:

我正在为 Web 应用程序使用 Angular 4。这里我正在传递 HOURS 以显示在表列表中(HH:MM:SS)。我想在列表中只显示 HH:MM。我正在传递 HH:MM :SS 来自数据库。我使用日期管道显示 HH:MM 。但它显示“InvalidPipeArgument: 'Invalid Date' for pipe 'DatePipe'”错误。我正在从 db 获取格式字符串数据,例如:543:43:09(HH:MM:SS) 和 76:33(HH:MM) 我怎样才能做到这一点?

样本数据可能

300:56:05

300:56

我想将数据格式转换为 300:56(HH:MM) 格式

 <span>{{time | date:"hh:mm"}}</span>

【问题讨论】:

  • time 是字符串吗?如果是,请包含完整的样本值。
  • 让我了解一下,您是否从 DB 接收到字符串“HH:MM:SS”并且要将其用作日期格式?
  • 是的..我怎样才能包含样本值?
  • 我正在从 DB 接收字符串“HH:MM:SS”,我想将其更改为 HH:MM 格式。
  • 鉴于您的编辑,请尝试{{time.split(":").slice(0,2).join(":")}}

标签: angular angular-pipe


【解决方案1】:

一种简单的方法是使用 SlicePipe:

Time: <span>{{time | slice:-3}}</span>

文档:https://angular.io/api/common/SlicePipe

享受吧!

【讨论】:

  • 比伊戈尔的答案更干净,应该在上面。
  • 它的工作。但在这里我面临另一个问题。来自 db 的数据有 HH:MM 和 HH:MM:SS 格式。在这种情况下它不工作
  • @ancy 然后将您的数据形式化。
  • 我去掉了切片参数中不必要的0。对于 HH:MM,如果您有能力将数据库中的数据形式化,那么这是最好的解决方案。否则,您可以在前端模型中对其进行形式化,但这不是很好,或者用 : 字符拆分字符串并获取前 2 个条目。您可以创建一个自定义管道来处理最后一种情况
猜你喜欢
  • 2018-11-26
  • 2019-04-02
  • 2018-01-30
  • 1970-01-01
  • 2018-06-12
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多