Eu tenho um objeto Date atual que precisa ser incrementado em um dia usando o objeto Date 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 ele não exibe 'Domingo' para day
, o que estou esperando que aconteça.
javascript
frenético-frenético
fonte
fonte
date: (date.getUTCDate()+1)
funciona (funciona para mim)? É possível que haja um conflito de nomenclatura comdate
(as Date () - Object e as Object-Key. Você tentou chamar Date () - Object diferente?7 Apr
você precisa (o que é 'adicionar no dia seguinte' para mim), é oSunday
. Lembre-se de adicionar+1
tanto emday:
edate:
(ou, como a resposta atual menciona, antes).Respostas:
Para adicionar um dia a um objeto de data:
var date = new Date(); // add a day date.setDate(date.getDate() + 1);
fonte
var a = new Date("2013-03-10T00:00:00.000Z");
a.setDate(a.getDate() + 1);
a.toISOString();
é"2013-03-10T23:00:00.000Z"
. Este é um caso sutil em que a função acima não funcionou para mim.a.setUTCDate(a.getUTCDate() + 1);
<- isso funciona com datas Zulu.Na minha humilde opinião, a melhor maneira é apenas adicionar um dia inteiro em milissegundos, dependendo de como você fatora seu código, isso pode bagunçar se for 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();
imo, isso garante precisão
aqui está outro exemplo que eu não gosto pode funcionar para você, mas não tão limpo aquela dose acima
var today = new Date('12/31/2015'); var tomorrow = new Date(today); tomorrow.setDate(today.getDate()+1); tomorrow.toLocaleDateString();
imho this === 'POOP'
Alguns de vocês reclamaram da minha abordagem do milissegundo por causa do horário de verão. Então eu vou quebrar isso. Primeiro, alguns países e estados não têm horário de verão. Segundo Adicionar exatamente 24 horas é um dia inteiro. Se o número da data não mudar uma vez por ano, mas for corrigido 6 meses depois, não vejo problema nisso. Mas, com o propósito de ser definitivo e ter que lidar com a distribuição do maligno Date (), pensei muito sobre isso e agora odeio completamente o Date. Portanto, 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 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 Válido Oficial 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.
fonte
var dte = Date.parse('2015-11-01'); console.log(dte); dte.setTime(dte.getTime() + 86400000 ); console.log(dte);
Se você deseja adicionar um dia (24 horas) à data e hora atual, você pode adicionar milissegundos como este:
new Date(Date.now() + ( 3600 * 1000 * 24))
fonte
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);
fonte
Inspirado por jpmottin em esta pergunta , aqui está o código uma linha:
var dateStr = '2019-01-01'; var days = 1; var result = new Date(new Date(dateStr).setDate(new Date(dateStr).getDate() + days)); document.write('Date: ', result); // Wed Jan 02 2019 09:00:00 GMT+0900 (Japan Standard Time) document.write('<br />'); document.write('Trimmed Date: ', result.toISOString().substr(0, 10)); // 2019-01-02
Espero que isto ajude
fonte
currentDay = '2019-12-06'; currentDay = new Date(currentDay).add(Date.DAY, +1).format('Y-m-d');
fonte