【问题标题】:Why formatting data is not working Angular?为什么格式化数据不起作用Angular?
【发布时间】:2019-10-17 03:50:24
【问题描述】:

我使用以下模式:

 {{ item.EVPDATA | date: "dd.mm.yyyy HH:mm" }}

item.EVPDATA是UNIX时间1566473370

我得到格式化的数据:

 19.07.1970 07:07 

为什么我得到错误的数据?

【问题讨论】:

    标签: angular angular5 angular8


    【解决方案1】:

    由于您的数据是 unix 时间的,因此在将其传递给日期管道之前,您需要将其转换为日期时间戳(通过 *1000),下面的代码应该可以工作 -

    {{ (item.EVPDATA * 1000) | date: "dd.MM.yyyy HH:MM"}}
    

    Stackblitz Working Example

    有关日期的更多速记管道值,您可以参考 -

    【讨论】:

      【解决方案2】:

      尝试: {{ 项目.EVPDATA |日期:“dd.MM.yyyy HH:mm”}}

      【讨论】:

      • 它仍然给我19.07.1970 07:07
      • 它应该以格式返回我Thu, 22 Aug 2019 11:29:30 GMT
      • 你可以使用 date: 'full',或者 date: "EEEE, MMMM d, y, h:mm:ss a zzzz"
      【解决方案3】:

      以下是 DatePipe 的文档: https://angular.io/api/common/DatePipe

      你试过了吗:

      {{ item.EVPDATA * 1000 | date: 'EEEE, MMMM d, y, h:mm:ss a zzzz' }}
      

      【讨论】:

        【解决方案4】:

        您可以使用自定义管道:

        import { Pipe, PipeTransform } from "@angular/core";
        @Pipe({
          name: "mypipe"
        })
        export class MyPipe  implements PipeTransform {
          transform(unix: any): string {
            const time = new Date(unix * 1000)
            return time.toString();
          }
        }
        
        {{ item.EVPDATA | mypipe }}
        

        the sample

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-18
          • 1970-01-01
          • 2015-02-28
          • 1970-01-01
          • 2023-04-06
          相关资源
          最近更新 更多