Angular2+ 如何显示日期的毫秒数?
Angular2+ How to display milliseconds from date?
我之前使用自定义管道显示时间,现在我尝试更改它以便我也可以显示毫秒:
{{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
Output from pipe: 08.05.2017 15:45:38.38
Full jsonDate pipe(no format): 2017-05-08T15:45:38.2527293+02:00
我是 Javascript 的新手,我不确定这是 Javascript 还是 Angular 问题,但是,我希望它能在 [=22] 中工作=].
是否可以使用管道来做到这一点,或者是否有 another/better 方法来做到这一点?
这是一个 Angular 问题。 AngularJS支持毫秒,但是Angular(2+)不支持(GH issue)。
您可以很好地删除 date
管道并仅使用您自定义的管道来完成此任务。但是,您的示例似乎不能很好地处理日期。无需详细说明,我建议您使用一些外部库来进行格式化
为你在你的管道里。否则会付出很多努力换取很少的回报。我个人选择的武器是 Moment.js
正确导入后,您只需使用:
moment(value).format('DD.MM.YYYY HH:mm:ss.SSS');
如果您想在不导入外部库的情况下解决这个问题,您可以按原样使用 Angular 日期管道(只有秒),然后通过管道将其添加到您自己的毫秒数。
另一种可能性是使用 angulars 管道并通过 javascript-method:
提取毫秒数
{{ Datetime | date:'dd.MM.yyyy HH:mm:ss' }}.{{ getMillies(Datetime) }}
----
public getMillies(input: Date): number
{
return new Date(input).getMilliseconds();
}
随着 Angular 5,一个新的 Date-Pipe 正在进行中,以支持 M
从 angular 5 开始,您可以使用 SSS
为您的日期添加毫秒数。
参见 https://angular.io/api/common/DatePipe
所以你的例子看起来像
{{log.LogDate|jsonDate|date:'dd.MM.yyyy HH:mm:ss.SSS'}}
angular 5 的变更日志:
- [...]
- 现在支持格式 S
到 SSS
.
的小数秒
- [...]
我之前使用自定义管道显示时间,现在我尝试更改它以便我也可以显示毫秒:
{{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
Output from pipe: 08.05.2017 15:45:38.38
Full jsonDate pipe(no format): 2017-05-08T15:45:38.2527293+02:00
我是 Javascript 的新手,我不确定这是 Javascript 还是 Angular 问题,但是,我希望它能在 [=22] 中工作=]. 是否可以使用管道来做到这一点,或者是否有 another/better 方法来做到这一点?
这是一个 Angular 问题。 AngularJS支持毫秒,但是Angular(2+)不支持(GH issue)。
您可以很好地删除 date
管道并仅使用您自定义的管道来完成此任务。但是,您的示例似乎不能很好地处理日期。无需详细说明,我建议您使用一些外部库来进行格式化
为你在你的管道里。否则会付出很多努力换取很少的回报。我个人选择的武器是 Moment.js
正确导入后,您只需使用:
moment(value).format('DD.MM.YYYY HH:mm:ss.SSS');
如果您想在不导入外部库的情况下解决这个问题,您可以按原样使用 Angular 日期管道(只有秒),然后通过管道将其添加到您自己的毫秒数。
另一种可能性是使用 angulars 管道并通过 javascript-method:
提取毫秒数{{ Datetime | date:'dd.MM.yyyy HH:mm:ss' }}.{{ getMillies(Datetime) }}
----
public getMillies(input: Date): number
{
return new Date(input).getMilliseconds();
}
随着 Angular 5,一个新的 Date-Pipe 正在进行中,以支持 M
从 angular 5 开始,您可以使用 SSS
为您的日期添加毫秒数。
参见 https://angular.io/api/common/DatePipe
所以你的例子看起来像
{{log.LogDate|jsonDate|date:'dd.MM.yyyy HH:mm:ss.SSS'}}
angular 5 的变更日志:
- [...]
- 现在支持格式 S
到 SSS
.
的小数秒
- [...]