Калькулятор времени - может кто видел?
Может кто видел калькулятор времени?
есть время, которое выводится в полях. например время 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, время: 01:29. |