Подтвердить что ты не робот

JavaScript, введите дату следующего дня

У меня есть следующий script, который возвращает следующий день:

function today(i)
    {
        var today = new Date();
        var dd = today.getDate()+1;
        var mm = today.getMonth()+1;
        var yyyy = today.getFullYear();

        today = dd+'/'+mm+'/'+yyyy;

        return today;   
    }

Используя это:

today.getDate()+1;

Я получаю следующий день месяца (например, сегодня вы получите 16).

Моя проблема заключается в том, что это может быть в последний день месяца, и поэтому в итоге возвращается 32/4/2014

Есть ли способ получить гарантированную правильную дату на следующий день?

4b9b3361

Ответ 1

Вы можете использовать:

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

Например, поскольку в апреле (текущий месяц) 30 дней, следующий код будет выводить 1:

var today = new Date();
today.setDate(30);
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
console.log(tomorrow.getDate());    

См. fiddle.

Ответ 2

Скопировать-вставить отсюда Увеличение даты в JavaScript:

Три варианта для вас:

Использование объекта JavaScript Date (без библиотек):

var today = new Date();
var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000));

Или, если вы не возражаете изменить дату на месте (а не создавать новая дата):

var dt = new Date();
dt.setTime(today.getTime() + (24 * 60 * 60 * 1000));

Изменить: см. также ответ Jigar и комментарий Дэвида ниже: var завтра = новая дата(); tomorrow.setDate(завтра .getDate() + 1);

Использование MomentJS:

var today = moment();
var tomorrow = moment(today).add('days', 1);

(Остерегайтесь того, что add изменяет экземпляр, на который вы его называете, а не возвращая новый экземпляр, поэтому today.add('days', 1) будет меняться сегодня. Вот почему мы начинаем с клонирования op на var завтра =....)

Использование DateJS, но оно не обновлялось в течение длительного времени:

var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();

использовать поиск в будущем

Ответ 3

Использование объекта Date гарантирует это. Например, если вы пытаетесь создать April 31st:

new Date(2014,03,31)        // Thu May 01 2014 00:00:00