ФорумПрограммированиеJavaScript → Работа с датами

Работа с датами

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz Май 3, 2011, 6:07 п.п.

    Задача такая - есть 2 даты вводимые пользователем. С какого-то числа по какое-то. Нужно вычислить сколько дней составляет этот промежуток, немного изменить введенные даты и вывести их.
    Пример: с 01.05.2011 по 10.01.2011.
    1. Нужно посчитать сколько дней составляет интервал - в нашем случае 10.
    2. От начальной даты отнять 2 дня (например, может быть больше или меньше) - получаем 29.04.2011
    3. К получившейся дате прибавить 20 дней (так же может быть любое кол-во дней) - получаем 19.05.2011

    Вот как-то так.
    Задача вроде примитивная. Проблема в том что сделать надо только средствами html/javascript/jquery
    Нигде не могу найти нормального описания работы с датами. Хотя бы как перевести дату в миллисекунды, там с ними похимичить и вывести назад новые даты.
    Очень надеюсь на помощь :)
    from TRIAL with LOVE
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 3, 2011, 6:13 п.п., спустя 5 минут 38 секунд

    1. Нужно посчитать сколько дней составляет интервал - в нашем случае 10.

    с 01.05.2011 по 10.01.2011

    с арфиметикой у тебя хуево … :-)

    юзай Date.parse() чтоли функция называется или в конструктор ли даты передавать надо.

    http://www.w3schools.com/jsref/jsref_obj_date.asp

    но если у тебя даты в известном формате, то я бы юзал нечто типа конструктора
    var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);


    хотя бы месяца от локали не напутаются :-)

    а дальше их можно вроде как вычитать смело друг из друга … ну там поиграться надо
    Сапожник без сапог
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz Май 3, 2011, 6:17 п.п., спустя 4 минуты 5 секунд

    Ок спс щас попробую поиграться.
    Формат известен, я сам его задам в нужном виде. Один хрен пока все даты руками вводятся.
    from TRIAL with LOVE
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 3, 2011, 6:21 п.п., спустя 4 минуты 2 секунды

    ну просто если ты понадеешься на правильност ьформатов, то может парситься какнит интересно в зависимости от локали))) ведь 5/6/2010 в россии это типа 5 июля, а в америке 6ое июня :-)
    Сапожник без сапог
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz Май 3, 2011, 6:40 п.п., спустя 19 минут 15 секунд

    Ну вроде что-то считается но из миллисекунд назад в дату не выводится да и просто чет толком ничего не выводится.
    Нет ни у кого наглядного примера? :)
    from TRIAL with LOVE
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Май 3, 2011, 11:52 п.п., спустя 5 часов 12 минут 5 секунд

    в последний раз, когда надо было возиться с датами, сделал все на аякс и в пхп уже с датами разбирался :D
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz Май 4, 2011, 9:58 д.п., спустя 10 часов 6 минут 5 секунд

    В ПХП и я бы разобрался, там и разбираться нечего. Но тут задача сделать именно на хтмл+яваскрипт.
    Придется отказаться видать, времени нет сидеть дрочить эти даты и яваскрипт который вечно через жопу работает.
    from TRIAL with LOVE
  • Vitosina

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz Май 4, 2011, 10:25 д.п., спустя 26 минут 32 секунды

    Использовал вот это:
    http://jacwright.com/projects/javascript/date_format

    Задача стояла следующая - после выбора даты начала нужно было установить дату конца +n дней. код выглядел приблизительно так:

    $('#datestart').change(function(){
    var dat = new Date(document.getElementById('datestart').value)
    $('#dateend').datepicker("setDate", dat.addDays(15).format('Y-m-d'));
    });
  • Vitosina

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz Май 4, 2011, 10:31 д.п., спустя 5 минут 53 секунды

    ну конечно же в примере используется jqueryui datepicker. без него будет как-то так:


    document.getElementById('dateend').value = dat.addDays(15).format('Y-m-d');

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Май 4, 2011, 12:34 п.п., спустя 2 часа 3 минуты 17 секунд

    интересно, это фишка такая юзать жукверевский датапикер и голый getElementById вместе?))
    Высокоуровневое абстрактное говно
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz Май 4, 2011, 1:27 п.п., спустя 52 минуты 31 секунду

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz Май 4, 2011, 6:06 п.п., спустя 4 часа 39 минут 36 секунд

    Во, это то что нужно, попробую в коде разобраться и сделать что нужно мне :)
    from TRIAL with LOVE

Пожалуйста, авторизуйтесь, чтобы написать комментарий!