html input 태그의 자바스크립트 변수저장 질문입니다..
조회수 881회
html input태그에서 속성값 time으로 하고 사용자에게 오전이든 오후든 시간을 입력받아 그 2개의 시간의 차를 구하고 싶습니다.
//<label for="start""><b>시작</b> :</label>
<input type="time" id="start" />
<label for="dismiss"><b>종료</b> :</label>
<input type="time" id="dismiss" />
<p><button onclick="cal(); return false;" id="calbt">계산하기</button></p>
//function cal() {
var start = $("#start").val();
var dimiss = $("#dimiss").val();
Number(start);
Number(dimiss);
var worktime = dismiss - start;
resoltdv1 = "Test 계산 = " + worktime;
$("#resoltdv1").html(resoltdv1);
}
제가 아는 선은 여긴데 이렇게 되면 시작시간이 오전 10:00일경우 그냥 1000 이렇게 받아와서 종료시간이 20:30이라면 2030 빼기 1000 이렇게 되더라고요// 이렇게 되는게 맞는 건지.. 전 몇시간 차이가 나는지 알고싶은데 그냥 저렇게 보고 10시간30분이구나 하고 알아야 되는건지.. 궁금합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
작성하신 코드에 오타가 있습니다. dimiss <> dismiss
20:30 에서 10:00 를 뺄때는 받아내림이 없어서 문제가 발생하지 않았지만 20:30 에서 10:50 를 뺄때는 시간에서 분으로 60만큼 받아서 빼야하는데 그대로 뺄 경우 9:80이 되버립니다.
이러한 경우를 막기위해선 시간을 분으로 변경한 후 뺄셈 후 다시 시간을 복구하시면 됩니다. 아래는 계산 예제 코드이니 확인해보시기 바랍니다.
var start = 1050; var end = 2030; var subStart = Math.floor(start/100)*60+start%100; var subEnd = Math.floor(end/100)*60+end%100; var subWorktime = subEnd - subStart; var worktime = Math.floor(subWorktime/60)*100+subWorktime%60 console.log("틀린 답 : "+(end-start)) // 틀린 답 : 980 console.log("올바른 답 : "+worktime) // 올바른 답 : 940
Math.floor는 소수점을 버리는 함수입니다.
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력