簡體   English   中英

我有一個列表,其中有多個 Time-In 或 Time-Out、Break In 或 Breakout

[英]I have a list in which multiple Time-In or Time-Out , Break In or Break out

我有一個列表,其中有多個 Time-In 或 Time-Out、Break In 或 Breakout。 我想計算從超時到超時的總持續時間

這里是數據。

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                   : ''
    } 
  ] 

這是輸入表單[![您可以檢查輸入字段以更好地理解][1]][1]

注意:所以第一次 Time-in 是 2:28 或 Time-out 3:28 和 hour 將是1 闖入或再次闖入后時間為 6:28 或暫停時間為 7:28 ,小時為1 現在小時是 2。請任何人建議我如何在使用 JavaScript、Typescript 時獲得總持續時間 2

這是確定兩個時間字符串之間差異的最小可重現示例(格式為“hh:mm”)。

 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, }; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM