Работа с датами, интервалы

 
0
 
JavaScript
ava
Step | 16.01.2004, 10:21
есть 3 колонки
ГОД, МЕСЯЦ, Число
При нажатие на год го прописывается в переменную
при нажатии на месяц он прописывается в другой переменной и производиться обновление третей колонки в соответсвии с количесвом дней в месяце..... при нажатие на число прописывается в третью переменную

и есть кнопка отправить, переменные должны отпраляться по посту.....

Я вообще не понимаю как это сделать если можно напишите полный пример, или хотябы ту часть где щелчок по месяцу меняет количество дней.....

Спасибо.....
Ответы (2)
ava
Aliance | 07.03.2005, 19:45 #
А какие г/м/д ? С потолка? Или из вып. списка?
Уточните.
Вот простой пример записи значения в функцию:

<HTML>
<HEAD>
<title>Тест</title>
<script type="text/javascript">
function calc () {
// Переменные, которые будут изменяться
var y, m, d;
// Год в контейнере
var ys = document.getElementById("year");
// Месяц в контейнере
var ms = document.getElementById("month");
// День в контейнере
var ds = document.getElementById("day");

// изменяем их значения
y = ys.innerHTML;
m = ms.innerHTML;
d = ds.innerHTML;

// Год в переменной
document.getElementById("yearV").innerHTML = y;
// Месяц в переменной
document.getElementById("monthV").innerHTML = m;
// День в переменной
document.getElementById("dayV").innerHTML = d;
}
</script>
</HEAD>

<BODY>

<div id="block" style="border: 1px red solid; padding: 10px;">
<BR>
<table border=1 cellpadding=10>
<TR>
<TD>Год</TD>
<TD>Месяц</TD>
<TD>Число</TD>
</TR>
<TR onclick="calc();">
<TD><div id="year">2005</div></TD>
<TD><div id="month">03</div></TD>
<TD><div id="day">08</div></TD>
</TR>
<TR>
<TD colspan=3>Var "Год": <span id="yearV">-</span></TD>
</TR>
<TR>
<TD colspan=3>Var "Месяц": <span id="monthV">-</span></TD>
</TR>
<TR>
<TD colspan=3>Var "День": <span id="dayV">-</span></TD>
</TR>
</table>
</div>

</BODY>
</HTML>
ava
Sardar | 09.03.2005, 01:12 #
Обьект Date не скажет сколько в дней в месяце, придётся делать самому. Смотрим пример, за него говорим большое спасобо [b]Cheba[/b]:
function checkYear(year) { 
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}

function daysFromMonth(month, leap)
{
var result = 0;
for (var i = 0; i < month; i++)
{
switch (i)
{
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
result += 31;
case 3:
case 5:
case 8:
case 10:
result += 30;
case 1:
result += leap ? 29 : 28;
}
}
return result;
}

function diff(date1, date2, mode)
{
var d1 = new Date(date1);
var d2 = new Date(date2);

switch (mode)
{
case "years":
return Math.abs(d1.getFullYear() - d2.getFullYear());
break;
case "months":
return Math.abs((d1.getFullYear() * 12 + d1.getMonth()) - (d2.getFullYear() * 12 + d2.getMonth()));
break;
case "days":
return Math.round(Math.abs((d1.getTime() - d2.getTime()) / 1000/60/60/24));
break;
case "hours":
return Math.round(Math.abs((d1.getTime() - d2.getTime()) / 1000/60/60));
break;
case "minutes":
return Math.round(Math.abs((d1.getTime() - d2.getTime()) / 1000/60));
break;
case "seconds":
return Math.round(Math.abs((d1.getTime() - d2.getTime()) / 1000));
break;
case "miliseconds":
return Math.round(Math.abs(d1.getTime() - d2.getTime()));
break;
default:
return "NaN";
}
}

function getResult()
{
var f = document.forms.f;
f.elements.result.value = diff(f.elements.d1.value, f.elements.d2.value, f.elements.mode.value);
}

HTML
<form name="f" method="post" action="">
Date1:
<input type="text" name="d1">
<br>
Date2:
<input type="text" name="d2">
<br>
Mode:
<select name="mode" value="years">
<option value="years" selected>Years</option>
<option value="months">Months</option>
<option value="days">Days</option>
<option value="hours">Hours</option>
<option value="minutes">Minutes</option>
<option value="seconds">Seconds</option>
<option value="miliseconds">Miliseconds</option>
</select>
<br>
<input type="button" name="calc" value="Calculate" onClick="getResult();">
<br>
<br>
Result: <input type="text" readonly="1" name="result">
</form>
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  Sardar   Step ava  Aliance
advanced
Отправить