将AD日期转换为角度上的DateTime

问题描述 投票:0回答:1

我从我的 Angular 网站的 Active 目录中获取属性

lastlogon
,如下所示:
133523714173245792
。 我想将其转换为可读的日期时间

我尝试过这样的日期管道:

 <span>{{ computer?.lastlogon | date}}</span>

<span>{{ computer?.lastlogon | date: 'dd/MM/yyyy'}}</span>

adn 总是会抛出相同的错误:

ERROR Error: NG02100: InvalidPipeArgument: 'Unable to convert "133523714173245792" into a date' for pipe 'DatePipe'

我尝试在多个网站上手动转换,但总是返回告诉其格式无效。

日期是:

133523714173245792

angular date datetime azure-active-directory active-directory
1个回答
0
投票

最终解决方案是

(value/10000000)-11644473600)*1000
。 我创建了一个执行此操作并返回基于 UNIX 的毫秒的管道,然后使用角度数据管道。 我自己的烟斗:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'adTimeConvert',
  standalone: true
})
export class AdTimeConvertPipe implements PipeTransform {

  transform(value: number, ...args: unknown[]): number {
    return ((value/10000000)-11644473600)*1000;
  }

}

然后在模板中使用它,如下所示:

<span>
{{computer?.lastlogon | adTimeConvert | date : "dd/MM/yyyy hh:mm:ss"}}
</span>
© www.soinside.com 2019 - 2024. All rights reserved.