Форум → Программирование → JavaScript → Работа с датами
Работа с датами
-
Задача такая - есть 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 -
Май 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);
хотя бы месяца от локали не напутаются :-)
а дальше их можно вроде как вычитать смело друг из друга … ну там поиграться надоСапожник без сапог -
Май 3, 2011, 6:17 п.п., спустя 4 минуты 5 секунд
Ок спс щас попробую поиграться.
Формат известен, я сам его задам в нужном виде. Один хрен пока все даты руками вводятся.from TRIAL with LOVE -
Май 3, 2011, 6:21 п.п., спустя 4 минуты 2 секунды
ну просто если ты понадеешься на правильност ьформатов, то может парситься какнит интересно в зависимости от локали))) ведь 5/6/2010 в россии это типа 5 июля, а в америке 6ое июня :-)Сапожник без сапог -
Май 3, 2011, 6:40 п.п., спустя 19 минут 15 секунд
Ну вроде что-то считается но из миллисекунд назад в дату не выводится да и просто чет толком ничего не выводится.
Нет ни у кого наглядного примера? :)from TRIAL with LOVE -
Май 3, 2011, 11:52 п.п., спустя 5 часов 12 минут 5 секунд
в последний раз, когда надо было возиться с датами, сделал все на аякс и в пхп уже с датами разбирался :D -
Май 4, 2011, 9:58 д.п., спустя 10 часов 6 минут 5 секунд
В ПХП и я бы разобрался, там и разбираться нечего. Но тут задача сделать именно на хтмл+яваскрипт.
Придется отказаться видать, времени нет сидеть дрочить эти даты и яваскрипт который вечно через жопу работает.from TRIAL with LOVE -
Май 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'));
}); -
Май 4, 2011, 10:31 д.п., спустя 5 минут 53 секунды
ну конечно же в примере используется jqueryui datepicker. без него будет как-то так:
…
document.getElementById('dateend').value = dat.addDays(15).format('Y-m-d');
… -
Май 4, 2011, 12:34 п.п., спустя 2 часа 3 минуты 17 секунд
интересно, это фишка такая юзать жукверевский датапикер и голый getElementById вместе?))Высокоуровневое абстрактное говно -
-
Май 4, 2011, 6:06 п.п., спустя 4 часа 39 минут 36 секунд
Во, это то что нужно, попробую в коде разобраться и сделать что нужно мне :)from TRIAL with LOVE
Пожалуйста, авторизуйтесь, чтобы написать комментарий!