Estoy tratando de tener un año a partir de la fecha de ahora y no funciona.
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());
Salida:
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)
El año tiene Dec 22 112... ?? El mes se muestra correctamente Jan 22 2012.
Si quieres jugar con él, http://jsbin.com/alezaj/edit#javascript,html,live . Esto está en Chrome y Firefox.
¡Gracias!
fuente

new Date(new Date().setFullYear(new Date().getFullYear() + 1))Esto creará
Dateexactamente un año en el futuro con solo una línea. Primero obtenemos elfullYearde anew Date, lo incrementamos, lo configuramos como el año de anew Date. Podrías pensar que terminamos ahí, pero si nos detuvimos, devolvería una marca de tiempo, no unDateobjeto, por lo que envolvemos todo en unDateconstructor.fuente
setYear()está obsoleto ,setFullYear()debería utilizarse en su lugar.Como
setYear()está obsoleto, la variante correcta es:Todos los ejemplos devuelven la marca de tiempo de Unix, si desea obtener el
Dateobjeto, simplemente envuélvalo con otronew Date(...)fuente
Usando algunas de las respuestas en esta página y aquí , se me ocurrió mi propia respuesta, ya que ninguna de estas respuestas me resolvió por completo.
Aquí está el quid de ello
Y aquí un JSFiddle que tiene un ejemplo de trabajo: https://jsfiddle.net/wavesailor/g9a6qqq5/
fuente
Utilizar este:
fuente
Use setFullyear como otros han publicado, pero tenga en cuenta que esto devuelve un valor de marca de tiempo, no un objeto de fecha. También es un buen candidato en mi humilde opinión para agregar funcionalidad a través del prototipo. Esto nos lleva al siguiente patrón:
fuente
De forma muy sencilla. usa este código.
fuente