Генератор дат

Тема в разделе "JavaScript", создана пользователем svkarasev, 9 янв 2014.

Модераторы: ZiX
  1. svkarasev

    svkarasev Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    52
    Симпатии:
    2
    Здравствуйте,
    Делаю сайт и внем нужно сделать примерное число доставки. Т.е. скрипт узнает сегодняшнюю дату, прибавляет кол-во дней указанное и показывает получившуюся дату, как тут Перейти по ссылке.
    Очень прошу помогите
    Спасибо всем, кто отзовется ))
     
  2. armagedon_kr

    armagedon_kr Создатель

    Регистр.:
    2 ноя 2013
    Сообщения:
    11
    Симпатии:
    3
    Решение через JavaScript чтобы прибавить к любой дате(например к сегодняшней), определённое количество дней или (суток).
    Например нам надо к сегодняшней дате прибавить 388 суток, для этого в скрипте укажите нужное число дней.

    К сегодняшней дате прибавляем нужное количество дней и получаем дату которая будет на тот момент.
    Пример:


    Current Date :Thu Jan 09 2014 19:25:16 GMT+0800
    New Date :Sun Feb 01 2015 19:25:16 GMT+0800


    А вот и сам скрипт:

    <script type="text/javascript">
    var newDt = new Date();
    document.writeln("Current Date :" + newDt + "<br/>");

    /* add 388 days to the current date */
    newDt.setDate(newDt.getDate() + 388);
    document.writeln("New Date :" + newDt);
    </script>
     
    svkarasev нравится это.
  3. 01K

    01K

    Регистр.:
    27 июн 2013
    Сообщения:
    291
    Симпатии:
    43
    Судя по ответам, этот вариант не правильный. Добавив число в конце года:
    Код:
    var from = new Date('2010-12-20T00:00:00');
    var to = new Date();
    to.setDate(from.getDate() + 30); // Tue Nov 19 2013 (WRONG!)
    даст не верный результат
     
    svkarasev нравится это.
  4. svkarasev

    svkarasev Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    52
    Симпатии:
    2
    Да у меня максимум +50 дней, не страшно.....Только вот как сделать месяца на русском?
     
  5. 01K

    01K

    Регистр.:
    27 июн 2013
    Сообщения:
    291
    Симпатии:
    43
    Всё же лучше попробовать этот скрипт:
    Код:
    function addDays(date, days) {
        var result = new Date(date);
        result.setDate(date.getDate() + days);
        return result;
    }
    Вот пруф, как работает :)
    Перейти по ссылке
     
    svkarasev нравится это.
  6. svkarasev

    svkarasev Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    52
    Симпатии:
    2
    Нееее, спасибо конечно, но я буду это вставлять в Prestashop и боюсь налопатить лишнего, так что лучше 1-ый вариант. А вот как на Русский месяц и дату перевести подскажете ))
    Спасибо )
     
  7. 01K

    01K

    Регистр.:
    27 июн 2013
    Сообщения:
    291
    Симпатии:
    43
    Тут с массивом надо. Что-то типа такого:
    Код:
    var months = [" января ", " февраля ", " марта ", " апреля ", " мая ", " июня ", " июля ", " августа ", " сентября ", " октября ", " ноября ", " декабря "];
    var days = ["Воскресенье, ", "Понедельник, ", "Вторник, ", "Среда, ", "Четверг, ", "Пятница, ", "Суббота, "];
    var now = new Date();
    var nowFullDate = days[now.getDay()] + now.getDate() + months[now.getMonth()] + now.getFullYear + " года";
    document.write(nowFullDate);
     
    svkarasev нравится это.
  8. 01K

    01K

    Регистр.:
    27 июн 2013
    Сообщения:
    291
    Симпатии:
    43
    Вот так только месяца показывает. ну а там + год выводим или всю дату частями
    Код:
    <script type="text/javascript">
    var months = [" января ", " февраля ", " марта ", " апреля ", " мая ", " июня ", " июля ", " августа ", " сентября ", " октября ", " ноября ", " декабря "];
    var newDt = new Date();
    document.writeln("Current Date :" +  months[newDt.getMonth()] + "<br/>");
    </script> 
     
    svkarasev нравится это.
  9. svkarasev

    svkarasev Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    52
    Симпатии:
    2
    HTML:
    <script type="text/javascript">
    var months = [" января ", " февраля ", " марта ", " апреля ", " мая ", " июня ", " июля ", " августа ", " сентября ", " октября ", " ноября ", " декабря "];
    var days = ["Воскресенье, ", "Понедельник, ", "Вторник, ", "Среда, ", "Четверг, ", "Пятница, ", "Суббота, "];
    var now = new Date();
    var nowFullDate = days[now.getDay()] + now.getDate() + months[now.getMonth()] ;
    document.writeln("Current Date :" + nowFullDate + "<br/>");
    
    now.setDate(now.getDate() + 50);
    var months = [" января ", " февраля ", " марта ", " апреля ", " мая ", " июня ", " июля ", " августа ", " сентября ", " октября ", " ноября ", " декабря "];
    var days = ["Воскресенье, ", "Понедельник, ", "Вторник, ", "Среда, ", "Четверг, ", "Пятница, ", "Суббота, "];
    var newFullDate = days[now.getDay()] + now.getDate() + months[now.getMonth()] ;
    document.writeln("New Date :" + newFullDate);
    </script>
     
  10. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    78
    Есть еще хорошая библитека для ленивых.
    Полная поддержка русского языка включая падежи и прочую орфографию.
    Называется MomentJS Перейти по ссылке
    Мануал длинный, но простой (прост, там разжеванны все мельчайшие детали)