javascript - Como posso adicionar 1 dia à data atual?
Eu tenho um objeto Date atual que precisa ser incrementado em um dia usando o objeto Date do JavaScript. Eu tenho o seguinte código em vigor:
var ds = stringFormat("{day} {date} {month} {year}", {
day: companyname.i18n.translate("day", language)[date.getUTCDay()],
date: date.getUTCDate(),
month: companyname.i18n.translate("month", language)[date.getUTCMonth()],
year: date.getUTCFullYear()
});
Como posso adicionar um dia a isso?
Adicionei +1 a getUTCDay() e getUTCDate(), mas não exibe 'Sunday' para day, o que eu esperava que acontecesse.
Resposta #1
Para adicionar um dia a um objeto de data:
var date = new Date();
// add a day
date.setDate(date.getDate() + 1);
Resposta #2
Na minha humilde opinião, a melhor maneira é simplesmente adicionar um dia inteiro em milissegundos, dependendo de como você estrutura seu código, isso pode dar errado se você estiver no último dia do mês.
Por exemplo, 28 de fevereiro ou 31 de março.
Aqui está um exemplo de como eu faria isso:
var current = new Date(); //'Mar 11 2015' current.getTime() = 1426060964567
var followingDay = new Date(current.getTime() + 86400000); // + 1 day in ms
followingDay.toLocaleDateString();
Na minha opinião, isso garante precisão
Aqui está outro exemplo. Eu não gosto disso. Pode funcionar para você, mas não é tão limpo quanto o exemplo acima.
var today = new Date('12/31/2015');
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+1);
tomorrow.toLocaleDateString();
Na minha opinião this === 'POOP'
Então, alguns de vocês reclamaram sobre minha abordagem de milissegundos por causa do horário de verão. Então, eu vou esclarecer isso. Primeiro, alguns países e estados não têm horário de verão. Segundo, adicionar exatamente 24 horas é um dia completo. Se o número da data não muda uma vez por ano, mas depois é ajustado 6 meses depois, eu não vejo problema nisso. Mas, para fins de ser definitivo e ter que lidar com todo o mal que é o Date(), eu pensei nisso e agora realmente odeio Date. Então, esta é a minha nova abordagem.
var dd = new Date(); // or any date and time you care about
var dateArray = dd.toISOString().split('T')[0].split('-').concat( dd.toISOString().split('T')[1].split(':') );
// ["2016", "07", "04", "00", "17", "58.849Z"] at Z
Agora vem a parte divertida!
var date = {
day: dateArray[2],
month: dateArray[1],
year: dateArray[0],
hour: dateArray[3],
minutes: dateArray[4],
seconds:dateArray[5].split('.')[0],
milliseconds: dateArray[5].split('.')[1].replace('Z','')
}
Agora temos nosso Objeto de Data Internacional Oficial Válida claramente escrito no meridiano Zulu. Agora para mudar a data
dd.setDate(dd.getDate()+1); // this gives you one full calendar date forward
tomorrow.setDate(dd.getTime() + 86400000);// this gives your 24 hours into the future. do what you want with it.
Resposta #3
Se você quiser adicionar um dia (24 horas) ao datetime atual, você pode adicionar milissegundos assim:
new Date(Date.now() + ( 3600 * 1000 * 24))
Resposta #4
simplesmente você pode fazer isso
var date = new Date();
date.setDate(date.getDate() + 1);
console.log(date);agora o date será a data de amanhã. aqui você pode adicionar ou subtrair o número de dias como desejar.
Resposta #5
int days = 1;
var newDate = new Date(Date.now() + days*24*60*60*1000);
CodePen
var days = 2;
var newDate = new Date(Date.now()+days*24*60*60*1000);
document.write('Today: <em>');
document.write(new Date());
document.write('</em><br/> New: <strong>');
document.write(newDate);