Операции с датами в Java Script. Сложение, разность дат
X
Форма обратной связи
Обратная связь

Операции с датами в Java Script. Сложение, разность дат

3123123213

Одним из сложных моментов в программировании я считаю работу с датами. Особенно если речь идет о изменении дат и операций с ними, например, сложении или разности дат, прибавлении к дате 1 месяца или дня и т.п.

Рассмотрим принцип изменения дат и построим функцию, которая автоматически будет складывать или вычитать нужное нам время. Ее полный код выглядит следующим образом:

function converttime(onetime, day, month, year) {
var D = new Date(onetime);
D.setDate(D.getDate()+day);
D.setMonth(D.getMonth()+month);
D.setFullYear(D.getFullYear()+year);
if(D.getDate() < 10) var curr_date = "0" + D.getDate(); else var curr_date = D.getDate();
if(D.getMonth() < 10) { var curr_month = D.getMonth()+1; curr_month = "0" + curr_month;} else var curr_month = D.getMonth()+1; //Всегда +1 для месяца - т.к. счет с о по 11
var curr_year = D.getFullYear();
var newData = curr_year + "-" + curr_month + "-" + curr_date; //формат даты на выходе (можно менять как угодно)
alert(newData);
}

Разберем работу скрипта

Для того чтобы работать с датой, необходимо переменной задать объект даты: var D = new Date(onetime); Сама дата будет подставляться пользователем в переменной onetime. Изменение даты осуществляется за счет функций setDate, setMonth и setFullYear, которые позволяют изменять день, месяц, год, как вперед, так и назад.

За счет этих установок мы и будем менять данные, которые будут передаваться с переменных day, month, year в функцию. Далее идут два if условия, которые позволят вывести конечную дату в правильном виде. И на строке var newData мы формируем конечную, измененную дату. alert, который есть в функции вы можете убрать и сделать вывод результатирующей даты в свой тег. Пример: document.getElementById('pr').innerHTML = newData; В этом случае вместо alert новая дата будет выводиться в id = pr.

Чтобы использовать функцию смены даты, используйте код:
converttime('2016-05-02 02:07:16', 0, 12, 0); //+12 месяцев
converttime('2016-05-02 02:07:16', 7, 2, 0); //+2 месяца + 7 дней
converttime('2016-05-02', 0, -4, 0); //-4 месяца
converttime('04.05.2016', 0, 0, 1); //+1 год

Думаю с помощью моей функции по изменению дат вы сможете реализовать нужный вам функционал на своем сайте.

| | Операции с датами в Java Script. Сложение, разность дат | Одним из сложных моментов в программировании я считаю работу с датами. Особенно если речь идет о изменении дат и операций с ними, например, сложении и | http://blogprogram.ru/wp-content/uploads/2016/09/3123123213-131x131.jpg

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>