为了账号安全,请及时绑定邮箱和手机立即绑定

单圈时间平均值的毫秒数将零降至十分之一

单圈时间平均值的毫秒数将零降至十分之一

四季花海 2021-06-05 16:08:37
我正在使用我在本网站上找到的代码来平均单圈时间 MM:SS.mmm(使用 Javascript 的平均时间)它工作得很好,直到结果在十分之一位置为零。例如,结果应该是 01:00.096 但是,零被丢弃,答案是 01:00.96我简化了“时间”的输入以突出问题。我查看了不同的格式问题,尝试将字符串转换为数字,我查看了offsetify函数,认为它以某种方式错误地解释了毫秒。我是 JavaScript 的新手,没有接受过正规培训,但喜欢编程。我从这个网站上的例子中学到了很多,可以在我自己的小应用程序中使用。var times = ['01:00.096'];var date = 0var result = '';                        function offsetify(t){    return t < 10 ? '0' + t : t;}for(var x = 0; x < times.length; x++ ) {    var tarr = times[x].split(':');    date += new Date(0, 0, 0, 0, tarr[0], tarr[1].split('.')[0], tarr[1].split('.')[1]).getTime();                  }var avg = new Date(date/times.length);result = offsetify(avg.getMinutes()) + ':' + offsetify(avg.getSeconds()) + '.' + offsetify(avg.getMilliseconds());
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

你看到 0 下降的原因是因为在 offsetify 函数中你有


return t < 10 ? '0' + t : t;

并且您将值 96 传递给它,该值不小于 10,因此函数返回96.


如果您能够找到一个日期时间格式库,例如date-fns或moment,并且您应该使用一个,那就太好了!让图书馆为您完成工作。


如果你想要练习,这对学习很有帮助,请使用


s.padStart(3, '0')

毫秒,和


s.padStart(2, '0')

几分钟。例如,对于您的毫秒:


> "5".padStart(3, "0")

'005'

> "55".padStart(3, "0")

'055'

> "383".padStart(3, "0")

'383'


查看完整回答
反对 回复 2021-06-11
  • 2 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信