首页 > 其他分享 >js获取时间差,返回格式为01天02小时03秒

js获取时间差,返回格式为01天02小时03秒

时间:2024-04-15 10:46:25浏览次数:24  
标签:02 03 01 end staytimeGap item let time 1000

// 获取时间差 返回值格式:01天02小时30秒
export function caclulateDiffTime(start, end): string {
  start = new Date(start).getTime();
  end = new Date(end).getTime();
  let staytimeGap = end - start;
  if (staytimeGap < 0) {
    staytimeGap = start - end;
  }
if(isNaN(staytimeGap )) {
  throw new Error('时间参数有误!');
}
  // 计算
  let stayDay = Math.floor(staytimeGap / (3600 * 1000 * 24));
  let modHour = staytimeGap % (24 * 1000 * 3600);
  let stayHour = Math.floor(modHour / (3600 * 1000));
  let modMin = modHour % (3600 * 1000);
  let stayMin = Math.floor(modMin / (60 * 1000));
  let modSec = modMin % (60 * 1000);
  let staySec = Math.floor(modSec / 1000);

  const timeArr = [
    {
      title: '天',
      time: stayDay,
    },
    {
      title: '小时',
      time: stayHour,
    },
    {
      title: '分钟',
      time: stayMin,
    },
    {
      title: '秒',
      time: staySec,
    },
  ];
  return timeArr
    .map((item) => {
     // 补0 
      if (item.time < 10) {
        item.time = '0' + item.time;
      }
      return item;
    })
   // 去除时间为0项
    .filter((item) => item.time > 0)
    .map((item) => item.time + item.title)
    .join('');
}

标签:02,03,01,end,staytimeGap,item,let,time,1000
From: https://www.cnblogs.com/coderzdz/p/18135395

相关文章

  • 【2024-04-13】连岳摘抄
    23:59重要的不是你在某方面有多大的信心,而是在困难面前仍然保持信心。                                                 ——卡罗尔·德韦克一个人,无论是男人还是女......
  • 【2024-04-12】参考不变
    20:00人生幸福与否并不是完全取决于所遭遇的事情本身是好还是坏,而是取决于我们对这些遭遇的感受。                                                 ——叔本华我感觉......
  • day01-02_我的Java学习笔记 (IDEA的安装、配置及使用、IDEA常用快捷键、IEDA创建空工
    1.IDEA的安装及配置1.1IDEA的安装具体操作,详见《04、IDEA安装详解.pdf》1.2IDEA主题配置、字体配置1.3IDEA常用快捷键1.4IDEA修改快捷键在IDEA工具中,Ctrl+空格的快捷键,可以帮助我们补全代码,但是这个快捷键和Windows中的输入法切换快捷键冲突,需要修改IDEA中......
  • day01-03_我的Java学习笔记(Java基础语法--注释、字面量、变量、二进制、ASCII编码、
    1.Java基础语法1.1注释1.2字面量(Python中叫数据类型)1.3变量1.3.1变量的定义及使用1.3.2变量使用注意事项1.4数据的存储形式:二进制字节、字、bit、byte的关系:字word字节byte位bit,来自英文bit,音译为“比特”,表示二进制位。字长是指字的......
  • cka刷题2024
    一.基于角色的访问控制-RBAC(4/25%)参考:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/Kubectlcreateclusterroledeployment-clusterrole--verb=create--resource=deployments,statefulsets,daemonsetsekubectlcreateserviceaccountcicd-tok......
  • [Violation] 'click' handler took 429ms
    问题violation意思为侵权,违背,违反,也就是说明click函数执行违反了某些规则原因测试当click事件中执行的程序耗时过长,超过160ms左右的时候就会显示该信息,测试最低155ms由于js本身是单线程运行,而click执行时间从函数放入调用栈到函数弹出调用栈的时间来计算可以通过a......
  • SpringBoot+Redis启动报错Unsatisfied dependency expressed through method 'stringR
    SpringBoot+Redis启动报错Applicationrunfailedorg.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'redisTool':Unsatisfieddependencyexpressedthroughfield'stringRedisTemplate';nestedexcep......
  • Rust 03
    /**函数体由一系列的语句和一个可选的结尾表达式构成.目前为止,我们提到的函数还不包含结尾表达式,不过作为语句一部分的表达式有一些.因为Rust是一门基于表达式(expression-based)的语言,这是一个需要理解的(不同于其他语言)重要区别.*/fnmain(){println!("Hello,wo......
  • Rust 02
    fnmain(){println!("Hello,world!");another_function();another_function2(5);print_labeled_measurement(5,'h');}fnanother_function(){println!("Anotherfunction.")}fnanother_function2(x:i32){......
  • Rust 01
    //https://kaisery.github.io/trpl-zh-cn/ch03-02-data-types.htmlfnmain(){println!("Hello,world!");//标量(scalar)类型代表一个单独的值。Rust有四种基本的标量类型:整型、浮点型、布尔类型和字符类型。//你可能在其他语言中见过它们。让我们深入了解它们在......