js创建自定义格式化时间描述

js创建自定义格式化时间描述

场景:

创建时间格式化描述:n天m小时p分钟,用于展示统计时间等

代码:

// 全局配置
let config = {
  minTime: 1 //最小展示时间
};

export default class TimeCalculateUtils {
  /**
   * 创建时间描述,格式 1天1小时1分钟
   * @param {*} totalTime 目前只计算分钟单位
   * @param {*} userConfig 自定义配置
   * @returns 时间描述
   */
  static createTimeDesc(totalTime = 0, userConfig = {}) {
  	// 加载自定义配置
    config = { ...config, ...userConfig };
    // 获取格式化描述
    return TimeCalculateUtils.getDescByTime(totalTime);
  }

  static getDescByTime(time = 0) {
    let desc = "";
    let remainDesc = "";
    // 大于1天的部分
    if (time >= (24 * 60)) {
      const day = parseInt(time / (24 * 60));
      const remainDayTime = time % (24 * 60);
      desc = `${day}`;
      if (remainDayTime > 0) {
      	// 除去天的部分格式化
        remainDesc = TimeCalculateUtils.getDescByTime(remainDayTime);
      }
      return `${desc}${remainDesc}`;
    }

	// 大于1小时的部分
    if (time >= 60) {
      const hour = parseInt(time / 60);
      const remainHourTime = time % 60;
      desc = `${hour}小时`;
      if (remainHourTime > 0) {
      	// 除去小时的部分格式化
        remainDesc = TimeCalculateUtils.getDescByTime(remainHourTime);
      }
      return `${desc}${remainDesc}`;
    }
    // 剩余分钟部分
    time = time === 0 ? config.minTime : time;
    desc = `${time}分钟`;
    return `${desc}`;
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值