Estou tentando chegar um ano a partir de agora, e não está funcionando.
JS:
var now = new Date();
var oneYr = new Date();
oneYr.setYear(now.getYear() + 1);
$("#yearFromNow").append(oneYr.toString());
var oneMonth = new Date();
oneMonth.setMonth(now.getMonth() + 1);
$("#monthFromNow").append(oneMonth.toString());
Resultado:
one mo. = Thu Dec 22 112 15:16:01 GMT-0500 (Eastern Standard Time)
one yr. = Sun Jan 22 2012 15:16:01 GMT-0500 (Eastern Standard Time)
O ano tem Dec 22 112
- ?? O mês está sendo exibido corretamente Jan 22 2012
.
Se quiser mexer nele, http://jsbin.com/alezaj/edit#javascript,html,live . Isso está no Chrome e no Firefox.
Obrigado!
fonte
new Date(new Date().setFullYear(new Date().getFullYear() + 1))
Isso criará
Date
exatamente um ano no futuro com apenas uma linha. Primeiro obtemos ofullYear
de anew Date
, incrementa-o e define-o como o ano de anew Date
. Você pode pensar que terminaríamos aí, mas se parássemos, ele retornaria um carimbo de data / hora, não umDate
objeto, então envolvemos tudo em umDate
construtor.fonte
setYear()
está obsoleto ,setFullYear()
deve ser usado em seu lugar.Como
setYear()
está obsoleto, a variante correta é:Todos os exemplos retornam o carimbo de data / hora Unix, se você deseja obter o
Date
objeto - apenas envolva-o com outronew Date(...)
fonte
Usando algumas das respostas nesta página e aqui , eu vim com minha própria resposta, pois nenhuma dessas respostas resolveu totalmente para mim.
Aqui está o ponto crucial disso
E aqui um JSFiddle que tem um exemplo de trabalho: https://jsfiddle.net/wavesailor/g9a6qqq5/
fonte
Usa isto:
fonte
Use setFullyear como outros postaram, mas esteja ciente de que isso retorna um valor de carimbo de data / hora, não um objeto de data. Também é um bom candidato para adicionar funcionalidade por meio do protótipo. Isso nos leva ao seguinte padrão:
fonte
De maneira muito simples. use este código.
fonte