【发布时间】:2020-07-23 16:10:25
【问题描述】:
我正在尝试将 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 中的重现
如何让组件接受那些预定义的格式来强制输入值?
【问题讨论】:
-
.transform的 first 参数不应该是时间吗?请给一个正确的minimal reproducible example。 -
嘿@jonrsharpe 感谢您的反馈,但是在我的用例中,用户输入了一个值(请参阅正则表达式强制基于时间的字符)然后我希望使用
datePipe将其格式化为任何格式,@在这种情况下为 987654331@。 -
哦,
replaced是时间,this.time是格式?再次,minimal reproducible example。 -
我在 SB 上大放异彩,但也根据您的指示在此处重写了代码。感谢您的友好解释。
标签: javascript angular datetime pipe