Ищется скрипт отображающий количество дней между двумя датами

web-investor

Постоялец
Регистрация
19 Окт 2007
Сообщения
504
Реакции
113
Есть у кого-нибудь ява-скрипт, который берет, из двух инпутов на странице, даты и вычисляет между ними количество дней?
Если есть дайте плиз, сам на ява-скрипте кодить вообще не умею...
 
function my_day() {
var alt = document.getElementById('date1').value;
var neu = document.getElementById('date2').value;
var d = neu.getTime() - alt.getTime();
return d/(1000*60*60*24);
}

только надо правильный формат даты или форматировать в скрипте
 
coolparty, что-то не получается... как правильно выводить работу скрипта? И какой формат даты правильный? (10-02-2012?)
 
Какие ID у полей с датами? Куда надо выводить результат?
 
date1 и date2, соответственно. Результат нужно сохранить в переменную для дальнейшей работы с ней в php-скрипте.
 
если переменная нужна везде обявите ее в начале скрипта (!не функции!)

var my_new;

my_new = my_day(); //теперь у вас есть переменная с разницей дней доступная в любом месте

формат Objektname = new Date(Год, Месяц, День);
 
coolparty, посмотри, правильно делаю?

PHP:
<input name="date1" type="text" value="2012-11-10"  /><br />
<input name="date2" type="text" value="2012-11-14"/>
 
<script language="javascript">
var my_new;
my_new = my_day();
 
function my_day() {
var alt = document.getElementById('date1').value;
var neu = document.getElementById('date2').value;
var d = neu.getTime() - alt.getTime();
return d/(1000*60*60*24);
}
</script>
 
<? echo $my_new ?>

Что-то переменная $my_new не выводится...
 
Что-то переменная $my_new не выводится...

потому что $my_new это переменная яваскрипта, а вывести её пытаетесь средствами php...
попробуйте вывести так:
<script language="javascript">
.........
document.write(my_new);

</script>
 
dino, так тоже сцуко не выводится... Что-то я думаю формат даты в инпуте не правильный (value="2012-11-10").
...
Добавил к инпутам соответствующие им id, все равно не работает.
...
Сделал так:
Код:
<script type="text/javascript">
var my_new;
my_new = my_day();
 
function my_day() {
var alt = document.getElementById('date1').value;
var neu = document.getElementById('date2').value;
var d = neu.getTime() - alt.getTime();
return d/(1000*60*60*24);
}
</script>
<script type="text/javascript">
  document.write(my_new);
</script>
Теперь выводит "undefined ". Похоже действительно что-то с форматом даты.
 
В общем сейчас ситуация следующая:
Добавил к инпутам выплывающий календарь, чтобы руками юзер даты не забивал.
Получился вот такой код:
Код:
<html>
<head>
<link rel='stylesheet' href='calendar.css' type='text/css'>
<script type='text/javascript' src='calendar.js'></script>
</head>
<body>
date1<input name="data11" class="date" id="date1"><br>
date2<input name="data21" class="date" id="date2"><br>
<script type="text/javascript">
var my_new;
my_new = my_day();
 
function my_day() {
var alt = document.getElementById('date1').value;
var neu = document.getElementById('date2').value;
var d = neu.getTime() - alt.getTime();
return d/(1000*60*60*24);
}
 
</script>
<script type="text/javascript">
  document.write(my_new);
</script>
</body>
</html>
Формат даты изменился, теперь в инпут попадает такая дата "26-02-2012", благодаря всплывающему календарю.
Но все равно функция выдает "undefined".
Как это выглядит вы можете увидеть на скрине.

Подскажите, что сделать, чтобы функция нормально работала и выводила разницу между датами? Как привести формат даты к нужному виду?

-----------------------------------
Нашел в сети еще вот такую вещь:
Код:
String d1 = " 23.11.2011";
String d2 = " 25.11.2011";
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Date date1 = null;
Date date2 = null;
try {
        date1 = format.parse(d1);
        date2 = format.parse(d2);
} catch (Exception e) {
        e.printStackTrace();
}
long difference = date1.getTime() - date2.getTime();
long days =  difference / (24 * 60 * 60 * 1000);
System.out.println("days=" + days);
Но тоже у меня не работает......
-----------------------------------
Пробовал также такую вещь:
Код:
String a = "27.03.2011";
String b = "28.03.2011";
 
DateFormat da = new SimpleDateFormat("dd.MM.yyyy");
DateFormat db = new SimpleDateFormat("dd.MM.yyyy");
 
long a1 = da.parse(a).getTime();
long b1 = db.parse(b).getTime();
 
long t = ((b1-a1))/(1000*24*3600);
И ни фига!
-----------------------------------
Блин, ни чего не получается, явакодеры где вы?
 

Вложения

  • kalen.jpg
    kalen.jpg
    22,8 KB · Просмотры: 14
Назад
Сверху