Как добавить дни в текущую дату в javascript?

var myDate = new Date();
var endtime= new Date(myDate.getDate()+1,23:59:59);
alert(endtime);

почему нет значения конечного времени? если я хочу добавить 1 день 10 часов 50 минут 30 секунд до сейчас, как установить код конца? спасибо

Ответ 1

Попробуйте использовать один из двух способов...

function addDays(myDate,days) {
return new Date(myDate.getTime() + days*24*60*60*1000);
}

DEMO1

или
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1); 

DEMO2

Ответ 2

попробуйте это

var date = new Date();
var numberToAdd = 1;
date.setDate(date.getDate() + numberToAdd); 

Ответ 3

Вам нужно будет добавить дни в миллисекундах:

var tomorrow = new Date(Date.now() + 1 * 24*3600*1000);

Конечно, вы можете добавить различное количество времени, вам просто нужно подсчитать его в миллисекундах при использовании конструктора Date или set/getTime().

Вы также можете установить разные единицы по отдельности, используя их методы Date:

var sometime = new Date; // now
sometime.setDate(sometime.getDate() + numberOfDays); 
sometime.setHours(sometime.getHours() + numberOfHours); 
sometime.setMinutes(sometime.getMinutes() + numberOfMinutes);
...

Вы не можете установить дату с поплавковым значением, она будет усечена при преобразовании в Integer.

Но методы настройки выше миллисекунд и выше даты имеют необязательные атрибуты, поэтому вы можете комбинировать параметр:

var sometime = new Date; // now
sometime.setFullYear(
  sometime.getFullYear() + numberOfYears,
  sometime.getMonth() + numberOfMonths,
  sometime.getDate() + numberOfDays
); 
sometime.setHours(
  sometime.getHours() + numberOfHours,
  sometime.getMinutes() + numberOfMinutes,
  ...
);

Ответ 4

Я всегда создаю 7 функций, чтобы работать с датой в JS: addSeconds, addMinutes, addHours, addDays, addWeeks, addMonths, addYears.

Здесь вы можете увидеть пример: http://jsfiddle.net/tiagoajacobi/YHA8x/

Как использовать:

var now = new Date();
console.log(now.addWeeks(3));

Это следующие функции:

        Date.prototype.addSeconds = function(seconds) {
            this.setSeconds(this.getSeconds() + seconds);
            return this;
        };

        Date.prototype.addMinutes = function(minutes) {
            this.setMinutes(this.getMinutes() + minutes);
            return this;
        };

        Date.prototype.addHours = function(hours) {
            this.setHours(this.getHours() + hours);
            return this;
        };

        Date.prototype.addDays = function(days) {
            this.setDate(this.getDate() + days);
            return this;
        };

        Date.prototype.addWeeks = function(weeks) {
            this.addDays(weeks*7);
            return this;
        };

        Date.prototype.addMonths = function (months) {
            var dt = this.getDate();

            this.setMonth(this.getMonth() + months);
            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };

        Date.prototype.addYears = function(years) {
            var dt = this.getDate();

            this.setFullYear(this.getFullYear() + years);

            var currDt = this.getDate();

            if (dt !== currDt) {  
                this.addDays(-currDt);
            }

            return this;
        };