Калькулятор времени - может кто видел?
Может кто видел калькулятор времени?
есть время, которое выводится в полях. например время 22:34 есть поля: <input type="text" name="hour" value="22"> <input type="text" name="min" value="34"> и есть поле куда вводятся корекция в минутах: <input type="text" name="korr" value="-24"> Если введено -24, то время должно отображаться не 22:34, а 22:10. Может кто видел такой скрипт??? |
|
Цитата:
а я искал по запросу "javascript калькулятор времени" и ничего не нашел... |
Что бы не плодить темы спрошу тут:
нашел я подходящий скрипт здесь: http://www.o-o-d.com/timecalc.php удалил все нужное. Вроде все работает. Но есть одна проблема: если например время1 - 23:55, а я прибавляю к нему 55 минут, то вместо 0:50, я получаю 24:50. Как это можно исправить? У автора, по ссылке выше, такая же ситуация. Вот мой код: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE> Калькулятор времени </TITLE> <META http-equiv="Cache-Control" content="no-cache"> <LINK rel='stylesheet' type='text/css' href='css/format.css'> </HEAD> <BODY> <SCRIPT type="text/javascript" language="JavaScript"> var t=3; function getTimeFromString(str) { var h=str.substring(0,str.indexOf(":")); var m=str.substring(str.lastIndexOf(":")+1,str.length); return m*60+h*60*60; } function calc_up() { var time=[]; var i=0; var s=0; for(i=1;i<t;i++) { time[i]=1*getTimeFromString(document.getElementById('t'+i).value); s+=time[i]; } var ts=s; var new_ts=0; var tsstring=""; while(ts>1000) { new_ts=Math.floor(ts/1000); tsstring=(ts-new_ts*1000)+" "+tsstring ts=new_ts; } var m=0; var h=0; if (s > 59) { m = Math.floor(s/60); s = s - m * 60; } if (m > 59) { h = Math.floor(m / 60); m = m - h * 60; } if (s < 10) { s = "0" + s; } if (m < 10) { m = "0" + m; } document.getElementById('tres').innerHTML=h+":"+m; return; } function calc_down() { var time=[]; var i=0; var s=0; for(i=1;i<t;i++) { time[i]=1*getTimeFromString(document.getElementById('t_down'+i).value); s+=time[i]; } var ts=s; var new_ts=0; var tsstring=""; while(ts>1000) { new_ts=Math.floor(ts/1000); tsstring=(ts-new_ts*1000)+" "+tsstring ts=new_ts; } var m=0; var h=0; if (s > 59) { m = Math.floor(s/60); s = s - m * 60; } if (m > 59) { h = Math.floor(m / 60); m = m - h * 60; } if (s < 10) { s = "0" + s; } if (m < 10) { m = "0" + m; } document.getElementById('tres_down').innerHTML=h+":"+m; return; } </SCRIPT> <DIV align="center"> <TABLE id="tab" border="0"> <TR> <TD class='c' colspan="3"> <b>ВВЕРХ</b> </TD> </TR> <TR> <TD> Время 1: </TD> <TD> <INPUT id="t1" maxlength="9" onkeyup="calc_up()" type="text" size="10" value="00:00"> </TD> </TR> <TR> <TD> Время 2: </TD> <TD> <INPUT id="t2" maxlength="9" onkeyup="calc_up()" type="text" size="10" value=""> </TD> </TR> <TR> <TD colspan="2"> Результат: </TD> <TH> <DIV id="tres"> 0:00 </DIV> </TH> </TR> </TABLE> </DIV> <br><br> <DIV align="center"> <TABLE id="tab" border="0"> <TR> <TD class='c' colspan="3"> <b>ВНИЗ</b> </TD> </TR> <TR> <TD> Время 1: </TD> <TD> <INPUT id="t_down1" maxlength="9" onkeyup="calc_down()" type="text" size="10" value="00:00"> </TD> </TR> <TR> <TD> Время 2: </TD> <TD> <INPUT id="t_down2" maxlength="9" onkeyup="calc_down()" type="text" size="10" value=""> </TD> </TR> <TR> <TD colspan="2"> Результат: </TD> <TH> <DIV id="tres_down"> 0:00 </DIV> </TH> </TR> </TABLE> </DIV> </BODY> </HTML> |
Цитата:
|
ну так а проверить не судьба что получилось после прибавки? и отминусовать если превышеает 23:59... :)
|
Ура! Часть проблемы решено!!! Добавил в функцию:
if (h > 23) { h = "0"; } И все заработало. а вот в "обратную сторону" - не пойму почему не работает. Написал так: if (h < 0) { h = "23"; } |
lvovitch,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <input type="text" name="hour" value="23"> <input type="text" name="min" value="55"> <input type="text" name="korr" value="55"> <input name="ok" type="button" value="ok"> <script> var hour = document.getElementsByName("hour")[0], min = document.getElementsByName("min")[0], korr = document.getElementsByName("korr")[0], ok = document.getElementsByName("ok")[0]; ok.onclick = function () { var date = new Date(); date.setHours(hour.value,((min.value|0)+(korr.value|0)),0,0); hour.value = date.getHours(); min.value = date.getMinutes(); } </script> </body> </html> |
Часовой пояс GMT +3, время: 15:47. |