作者:Fealty-小飞 | 来源:互联网 | 2023-02-04 15:19
我使用自定义管道显示时间,现在我尝试更改它,以便我也可以显示毫秒:
{{log.LogDate|jsonDate|date:'dd.MM.yyyy HH:mm:ss.sss'}}
管道本身:
if (typeof (value) === 'string') {
if (value.includes('/Date('))
return new Date(parseInt(value.substr(6)));
}
return value;
但是,毫秒的值为秒:
log.LogDate:2017-05-08T15:45:38.2527293+ 02:00
管道输出:08.05.2017 15:45:38.38
完整的jsonDate管道(无格式):2017-05-08:15:45:38.2527293 + 02:00
我是Javascript的新手,我不确定这是Javascript还是Angular问题,但是,我希望它能在Angular中工作.是否可以使用管道来做到这一点,还是有其他/更好的方法来做到这一点?
1> Akora..:
从角度5开始,您可以使用SSS
毫秒来添加日期。
请参阅https://angular.io/api/common/DatePipe,
因此您的示例如下所示
{{log.LogDate|jsonDate|date:'dd.MM.yyyy HH:mm:ss.SSS'}}
角度5的变更日志:
-
现在支持小数秒,格式S
为SSS
。
-[...]
2> 小智..:
这是一个有角度的问题。AngularJS支持毫秒,但是Angular(2+)不支持(GH问题)。您可以很好地将date
管道放下,并仅将自定义管道用于此任务。但是,您的示例似乎无法很好地处理日期。在不赘述的情况下,我建议您使用一些外部库在管道内部为您进行格式化。否则,将付出很多努力,却几乎没有回报。我选择的个人武器是Moment.js。
正确导入后,您只需使用:
moment(value).format('DD.MM.YYYY HH:mm:ss.SSS');
如果您想通过一种肮脏的方式而不导入外部库,可以按原样使用Angular日期管道(仅包含秒),然后通过管道将其自己添加毫秒。