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

Тема в разделе "JavaScript", создана пользователем web-investor, 7 фев 2012.

Модераторы: ZiX
  1. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    Есть у кого-нибудь ява-скрипт, который берет, из двух инпутов на странице, даты и вычисляет между ними количество дней?
    Если есть дайте плиз, сам на ява-скрипте кодить вообще не умею...
     
  2. coolparty

    coolparty Постоялец

    Регистр.:
    6 ноя 2006
    Сообщения:
    63
    Симпатии:
    25
    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);
    }

    только надо правильный формат даты или форматировать в скрипте
     
    web-investor нравится это.
  3. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    coolparty, что-то не получается... как правильно выводить работу скрипта? И какой формат даты правильный? (10-02-2012?)
     
  4. coolparty

    coolparty Постоялец

    Регистр.:
    6 ноя 2006
    Сообщения:
    63
    Симпатии:
    25
    Какие ID у полей с датами? Куда надо выводить результат?
     
  5. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    date1 и date2, соответственно. Результат нужно сохранить в переменную для дальнейшей работы с ней в php-скрипте.
     
  6. coolparty

    coolparty Постоялец

    Регистр.:
    6 ноя 2006
    Сообщения:
    63
    Симпатии:
    25
    если переменная нужна везде обявите ее в начале скрипта (!не функции!)

    var my_new;

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

    формат Objektname = new Date(Год, Месяц, День);
     
    web-investor нравится это.
  7. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    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 не выводится...
     
  8. dino

    dino

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

    </script>
     
  9. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    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 ". Похоже действительно что-то с форматом даты.
     
  10. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    В общем сейчас ситуация следующая:
    Добавил к инпутам выплывающий календарь, чтобы руками юзер даты не забивал.
    Получился вот такой код:
    Код:
    <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 КБ
      Просмотров:
      14