首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我有一个列表,其中包括多次超时或超时、突破或突破。

我有一个列表,其中包括多次超时或超时、突破或突破。
EN

Stack Overflow用户
提问于 2022-01-12 10:44:15
回答 1查看 53关注 0票数 -3

我有一个列表,其中包括多次超时或超时、突破或突破。我要计算从时间到超时的总持续时间。

这是数据。

代码语言:javascript
复制
const data = 
  [ { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '02:28'
    , activityTypeId            : 'Time In'
    , comments                  : 'dgdfgdfg'
    , isLeave                   : ''
    } 
  , { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '03:28'
    , activityTypeId            : 'Time Out'
    , comments                  : '2323'
    , isLeave                   : ''
    } 
  , { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '04:28'
    , activityTypeId            : 'Break In'
    , comments                  : '2323'
    , isLeave                   : ''
    } 
  , { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '05:28'
    , activityTypeId            : 'Break Out'
    , comments                  : '2323'
    , isLeave                   : ''
    } 
  , { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '06:28'
    , activityTypeId            : 'Time In'
    , comments                  : '2323'
    , isLeave                   : ''
    } 
  , { timeSheetDetailActivityId : 0
    , timeSheetDailyActivityId  : 0
    , entryDateTime             : '07:28'
    , activityTypeId            : 'Time Out'
    , comments                  : '232323'
    , isLeave                   : ''
    } 
  ] 

这是输入表格

注:所以第一次进入是2:28或超时3:28和小时将是1.在破门而入或再次突破后,时间是6:28或超时7:28,和hour将是1。现在的是2小时。请大家建议我如何才能在使用JavaScript时获得的总持续时间2,打字本。

EN

回答 1

Stack Overflow用户

发布于 2022-01-12 11:10:03

下面是minimal reproducable example来确定两个时间字符串之间的差异(格式化为'hh:mm')。

代码语言:javascript
复制
const tIN = '03:28'.split(`:`).map(Number);
const tOUT = '04:28'.split(`:`).map(Number);
let [now, then] = [new Date, new Date];
now.setHours(tIN[0]);
now.setMinutes(tIN[1]);
then.setHours(tOUT[0]);
then.setMinutes(tOUT[1]);
const diff = dateDiffCalc(then - now);
console.log(diff);

function dateDiffCalc(milliseconds) {
  const secs = Math.floor(Math.abs(milliseconds) / 1000);
  const mins = Math.floor(secs / 60);
  const hours = Math.floor(mins / 60);
  
  return {
    days: Math.floor(hours / 24),
    hours: hours % 24,
    minutes: mins % 60,
    seconds: secs % 60,
  };
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70680151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档