Neste artigo você vai aprender como adicionar mais horas ou dias a uma data em JavaScript, ou seja, manipular datas em JavaScript
Fala programador(a), beleza? Bora aprender mais sobre como adicionar horas e manipular datas em JavaScript!
A notícia boa é que a linguagem já prepara muito bem o meio de campo para nós
Adicionar horas é possível por meio de um método chamado setHours, do objeto/classe Date
Então devemos instanciar um nova data com Date, para poder utilizar seus métodos auxiliares e manipular horários
Veja um exemplo prático:
var data = new Date(); console.log(data.getHours()); // 9 data.setHours(data.getHours() + 3); console.log(data.getHours()); // 12
Perceba que pegamos as horas da data criada pelo Date pelo getHours e adicionamos 3 horas com um inteiro
Desta forma ao pegar a data novamente, as horas estarão acrescidas
O método setHours foi responsável por este incremento de horas ao valor original da data
Para adicionar dias as datas é bem parecido com a forma de adicionar horas, veja um exemplo:
var data = new Date(); console.log(data.getDate()); // 14 data.setDate(data.getDate() + 5); console.log(data.getDate()); // 19
Só que aqui vamos utilizar os métodos getDate e setDate, para pegar os dias e modificar os dias respectivamente
Conclusão
Neste artigo vimos como adicionar mais horas ou dias a uma data em JavaScript
Utilizamos os métodos getHours e getDate, para pegar as horas e os dias
E o método setHours e setDate, para modificar estes valores
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Mano. legal mas se você acrecenta um dia ao dia 28/02/2021, lo lugar de 01/02/2021 ele iria ficar 29/02/2021? tipo só está setando o dia somado sem ter controle de como realmente vai ficar a data?
mano eu fiz o seguinte. somei usando o tempo em milisegundos, por que assim eu posso somar a data sem me preocupar se é o ultimo dia do mes. que mes é. se o ano é bissexto. etc.
var date= new Date();
var day = SECONDS_PER_MINUTE* MILI_SECONDS_PER_SECOND*MINUTES_PER_HOUR*HOURS_PER_DAY;
var anotherDay = new Date((date.getTime() + day));
pensei a mesma coisa… e quando é o último dia do mês…. o certo é trabalhar as somas desejadas em cima do Date() e não como se fossem manipular number aleatórios.
Vou tentar sua abordagem, obrigado 🙂
Ambos estão errados, o JS sabe lidar com esse tipo de situação e faz os ajustes necessários. Por favor, não fiquem dando ideia errada sem testar antes.
Teste: https://jsfiddle.net/q92j3huw/