JavaScript – Sumar días o meses a una fecha

Veamos un ejemplo de cómo sumar a la fecha actual, días o meses en Javascript. Uno de los temas más engorrosos debido a los diferentes formatos de fechas según el país. Empezamos con el artículo JavaScript – Sumar días o meses a una fecha.

Partimos de que disponemos de una fecha concreta, y queremos saber la fecha futura sumándole días o meses a esta fecha. Un ejemplo sencillo sería saber la fecha de salida si podemos estar 7 días a partir de hoy. Si hoy es ‘tal fecha’, de aquí 7 días, que fecha es?

Empezamos viendo este ejemplo donde se suma 3 días a la fecha actual

<script type="text/javascript">
// Fecha de hoy hoy=new Date(); 
// Milisegundos de 3 días mas 
// (días * 24 horas * 60 minutos * 60 segundos * 1000 milésimas de segundo) 
suma3dias= 3*24*60*60*1000; 
// Sumamos a la fecha de hoy en milisegundos, los 3 días más en milisegundos 
// Tendremos una nueva variable en milisegundos de la fecha actual + 3 días fechacontresdiasmas=hoy.getTime()+(3*24*60*60*1000); 
// Si la queremos en formato fecha fechacontresdiasmasformatada= new Date(fechacontresdiasmas); </script>

Si, por el contrario, quisiéramos tratar con meses (aproximado) y no por días, se podría hacer

<script type="text/javascript"> 
// Fecha de hoy hoy=new Date(); 
// Milisegundos de 3 días mas suma3dias= 30*24*60*60*1000; (días * 24 horas * 60 minutos * 60 segundos * 1000 milésimas de segundo) 
// Sumamos a la fecha de hoy en milisegundos, los 3 días más en milisegundos 
// Tendremos una nueva variable en milisegundos de la fecha actual + 3 días fechacontresdiasmas=hoy.getTime()+(3*24*60*60*1000); 
// Si la queremos en formato fecha fechacontresdiasmasformatada= new Date(fechacontresdiasmas); 
</script>

Fijaos que no multiplicamos por 3, sino por 30 que son los días que hace un mes. Como sabéis hay meses de 28, 30 o 31 días, por lo que este último método es aproximado y debería completarse el cálculo teniendo en cuenta los días exactos que tiene cada uno de los meses, pero eso os lo dejo a vosotros.

Hay otras maneras mucho mas exactas de hacerlo. Lo dejamos para otro post.

Espero que os sea de utilidad.


Más información