gpt4 book ai didi

javascript - 这个时间计算脚本中的奇怪错误?

转载 作者:搜寻专家 更新时间:2023-11-01 05:08:18 24 4
gpt4 key购买 nike

基本上这个脚本将从 EndTime 中减去 StartTime,使用 jQuery 插件,html 表单以 HH:MM 格式填充开始和结束时间,输入字段填充结果,除了一个问题外,它可以工作:

如果开始时间介于 08:00 和 09:59 之间,它只会返回奇怪的结果 - 准确地说结果有 10 小时的偏差,为什么?

所有其他输入计算正确!

function setValue() { 
var startTime = document.getElementById('ToilA');
var endTime = document.getElementById('EndHours'); startTime = startTime.value.split(":");
var startHour = parseInt(startTime[0]);
var startMinutes = parseInt(startTime[1]);
endTime = endTime.value.split(":");
var endHour = parseInt(endTime[0]);
var endMinutes = parseInt(endTime[1]);
//var hours, minutes;
var today = new Date();
var time1 = new Date(2000, 01, 01, startHour, startMinutes, 0);
var time2 = new Date(2000, 01, 01, endHour, endMinutes, 0); var milliSecs = (time2 - time1);
msSecs = (1000);
msMins = (msSecs * 60);
msHours = (msMins * 60);
numHours = Math.floor(milliSecs/msHours);
numMins = Math.floor((milliSecs - (numHours * msHours)) / msMins);
numSecs = Math.floor((milliSecs - (numHours * msHours) - (numMins * msMins))/ msSecs); numSecs = "0" + numSecs; numMins = "0" + numMins; DateCalc = (numHours + ":" + numMins);

document.getElementById('CalculateHours').value = DateCalc; }

最佳答案

每当你遇到数字 8 的数学问题时,它都会转换为八进制系统:)

0 开头的数字 are interpreted as octal numbers in Javascript .

01..07 没有问题,因为它们在两个系统中是相同的。

但是0809在系统中不存在,所以返回0

另见 this question这也提供了一个解决方案:在做parseInt时指定基本参数:

parseInt("09", 10);  // base 10

关于javascript - 这个时间计算脚本中的奇怪错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com