javascript - 以编程方式将 Angular DateTime 管道用于 hh:mm:ss 格式
问题描述
我正在尝试将DatePipe用于 HH:MM:SS (或任何其他记录格式),就像我将DecimalPipe用于货币值一样。
但是,将我的逻辑传递给我的值之类的格式hh:mm:ss
会立即变为07:00:00
.
time = 'hh:mm:ss';
val = '1:02'; // user entered value
invalids = new RegExp('[^0-9:]{0,6}', 'g'); // time chars only
replaced = String(val).replace(invalids, ''); // remove non-hhmmss characters
let value = this.datePipe.transform(replaced, time); // format the value
console.log(value); // '07:00:00' why!?
这是StackBlitz中的重现:67
我怎样才能让组件接受那些预定义的格式来强制输入值?
解决方案
Angular DatePipe 的输入类型为 any,但实际上需要一个日期、毫秒或 ISO 格式的字符串,而您没有提供它。
https://angular.io/api/common/DatePipe#input-value
value any 日期表达式:一个 Date 对象、一个数字(自 UTC 纪元以来的毫秒数)或一个 ISO 字符串 ( https://www.w3.org/TR/NOTE-datetime )。
您传入的数据不符合该标准,因此它可能不适用于您的用例,除非您可以在发送到datePipe
.
推荐阅读
- python - Socket.py 没有属性 AF_INET
- python-3.x - 矩形,使用 python3 进行轮廓检测,opencv3
- javascript - 有没有办法列出频道的私人或不公开视频?
- php - Sweetalert (Ajx - PHP Form) 仅在输入字段为空时显示成功(警报)
- android - 使用手机数据(3g/4g)时应用崩溃
- dart - 在 Flutter 中,如何为无状态小部件定义基线?
- javascript - 异步/等待永远卡住
- bash - 初始化 Redis 变量
- python - Python pd 在 groupby 点表示法中使用具有列名的变量
- javascript - 是否有任何命令行浏览器可以在 DOM 上执行 javascript 并在该 DOM(交互式控制台)上执行 javascript?