How to use format() on a moment.js duration?

前端 未结 28 2227
自闭症患者
自闭症患者 2020-11-27 04:34

Is there any way I can use the moment.js format method on duration objects? I can\'t find it anywhere in the docs and it doesn\'t seen to be an attribute on du

28条回答
  •  借酒劲吻你
    2020-11-27 05:20

    If you use Angular >2, I made a Pipe inspired by @hai-alaluf answer.

    import {Pipe, PipeTransform} from "@angular/core";
    
    @Pipe({
      name: "duration",
    })
    
    export class DurationPipe implements PipeTransform {
    
      public transform(value: any, args?: any): any {
    
        // secs to ms
        value = value * 1000;
        const days = Math.floor(value / 86400000);
        value = value % 86400000;
        const hours = Math.floor(value / 3600000);
        value = value % 3600000;
        const minutes = Math.floor(value / 60000);
        value = value % 60000;
        const seconds = Math.floor(value / 1000);
        return (days ? days + " days " : "") +
          (hours ? hours + " hours " : "") +
          (minutes ? minutes + " minutes " : "") +
          (seconds ? seconds + " seconds " : "") +
          (!days && !hours && !minutes && !seconds ? 0 : "");
      }
    }
    

提交回复
热议问题