将工作时间转换为周,天,小时和分钟

时间:2017-04-25 18:57:48

标签: javascript time momentjs jira-rest-api

我正在使用jira rest api来解决问题。问题估计时间以秒为单位返回 - 但基于每周5天,每天8小时。

因此,例如,1d的估计时间将被返回为28800秒

我有这个代码可以做我想要的,但它闻起来有点我想知道是否有更好的功能来做我想要的

 let es = 246180; // time (number of *work* seconds) is "1w 3d 4h 23m"
 let sInMin = 60;
 let sInHour = (60 * 60);
 let sInDay  = (sInHour * 8);
 let sInWeek = (sInDay * 5);

 let w = Math.trunc(es / sInWeek);
 let d = Math.trunc((es - (w * sInWeek)) / sInDay);
 let h = Math.trunc((es - (w * sInWeek) - (d * sInDay)) / sInHour);
 let m = Math.trunc((es - (w * sInWeek) - (d * sInDay) - (h * sInHour)) / sInMin);

 console.log(w,d,h,m)  // 1 3 4 23

如果我将momentmoment-duration-format添加到混音中,我就可以

moment.duration({w,d,h,m}).format("w[w] d[d] h[h] m[m]")

获取神奇的1w 3d 4h 23m字符串

我该如何改善这个?

1 个答案:

答案 0 :(得分:1)

JIRA REST API已经为您提供了您尝试计算的字段。

来自文档here中的示例回复:

"timetracking": {
    "originalEstimate": "10m",
    "remainingEstimate": "3m",
    "timeSpent": "6m",
    "originalEstimateSeconds": 600,
    "remainingEstimateSeconds": 200,
    "timeSpentSeconds": 400
    }

您正在抓取originalEstimateSeconds字段并尝试进行数学运算以获取字符串,但字符串已在originalEstimate字段中排在前面。无需计算。