Angular2 +如何显示从日期开始的毫秒数?

Sch*_*ger 8 javascript datetime pipe milliseconds angular

我使用自定义管道显示时间,现在我尝试更改它,以便我也可以显示毫秒:

{{log.LogDate|jsonDate|date:'dd.MM.yyyy   HH:mm:ss.sss'}}
Run Code Online (Sandbox Code Playgroud)

管道本身:

if (typeof (value) === 'string') {
        if (value.includes('/Date('))
            return  new Date(parseInt(value.substr(6)));
    }
    return value;
Run Code Online (Sandbox Code Playgroud)

但是,毫秒的值为秒:

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中工作.是否可以使用管道来做到这一点,还是有其他/更好的方法来做到这一点?

Ako*_*ora 10

从角度5开始,您可以使用SSS毫秒来添加日期。
请参阅https://angular.io/api/common/DatePipe,


因此您的示例如下所示

{{log.LogDate|jsonDate|date:'dd.MM.yyyy   HH:mm:ss.SSS'}}
Run Code Online (Sandbox Code Playgroud)



角度5的变更日志:
-
现在支持小数秒,格式SSSS
-[...]


bor*_*ski 5

这是一个有角度的问题。AngularJS支持毫秒,但是Angular(2+)不支持(GH问题)。您可以很好地将date管道放下,并仅将自定义管道用于此任务。但是,您的示例似乎无法很好地处理日期。在不赘述的情况下,我建议您使用一些外部库在管道内部为您进行格式化。否则,将付出很多努力,却几乎没有回报。我选择的个人武器是Moment.js。 正确导入后,您只需使用:

moment(value).format('DD.MM.YYYY HH:mm:ss.SSS');
Run Code Online (Sandbox Code Playgroud)

如果您想通过一种肮脏的方式而不导入外部库,可以按原样使用Angular日期管道(仅包含秒),然后通过管道将其自己添加毫秒。