JavaScript, obtener la fecha del día siguiente [duplicate]

4 minutos de lectura

Tengo el siguiente script que regresa al día siguiente:

function today(i)
    {
        var today = new Date();
        var dd = today.getDate()+1;
        var mm = today.getMonth()+1;
        var yyyy = today.getFullYear();

        today = dd+"https://stackoverflow.com/"+mm+"https://stackoverflow.com/"+yyyy;

        return today;   
    }

Al usar esto:

today.getDate()+1;

Obtengo el siguiente día del mes (por ejemplo, hoy sería 16).

Mi problema es que esto podría ser el último día del mes, y por lo tanto terminar volviendo 32/4/2014

¿Hay alguna manera de obtener la fecha correcta garantizada para el día siguiente?

  • stackoverflow.com/questions/1160827/…

    – dikesh

    15 de abril de 2014 a las 10:39

  • ¿Hay algún error al optar por un trazador de líneas como new Date(1000*60*60*24 + +new Date()) ?

    – Midhun KM

    15 de marzo de 2018 a las 14:25

  • @KrIsHnA encantador de una sola línea. ¡sin errores! lo estoy usando como new Date(86400000 + +new Date()) al procesador de repuesto del costo de la multiplicación. @ToWhomItMayConcern el símbolo más precedido aquí +new Date() es un operador unario (intenta convertir el operando en un número, si aún no lo está), por si acaso 🙂

    – Preguntas frecuentes

    2 de febrero de 2020 a las 8:54


avatar de usuario
acarlón

Puedes usar:

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate()+1);

Por ejemplo, dado que hay 30 días en abril, el siguiente código generará el 1 de mayo:

var day = new Date('Apr 30, 2000');
console.log(day); // Apr 30 2000

var nextDay = new Date(day);
nextDay.setDate(day.getDate() + 1);
console.log(nextDay); // May 01 2000    

Ver violín.

  • No sé si ayuda en el rendimiento, pero se puede simplificar usando tomorrow.setDate(tomorrow.getDate() + 1);

    –Gustavo Rodrigues

    6 de agosto de 2014 a las 14:10

  • Este enfoque no actualizará el mes. Por lo tanto, aún devolverá abril si solicita el mes, en el ejemplo

    – marimaf

    24/11/2017 a las 22:40

  • @marimaf: este enfoque actualiza el mes. Su ejemplo fue un poco raro porque dependía de que fuera el mismo mes que cuando hizo esta respuesta (acabo de actualizar para arreglar eso), pero el enfoque funciona.

    – Bryan Grezeszak

    16 de febrero de 2018 a las 8:33

  • gracias.. me ayudo mucho

    – kurniawan26

    17 de mayo de 2018 a las 3:14

  • Aquí hay un oneliner que funcionó mejor para mis necesidades: var tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));

    –Björn Andreasson

    22 de mayo de 2019 a las 7:43


avatar de usuario
Ruslán F.

Copiado y pegado desde aquí: Incrementando una fecha en JavaScript

Tres opciones para ti:

Usando solo el objeto Date de JavaScript (sin bibliotecas):

var today = new Date();
var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000));

Un trazador de líneas

const tomorrow = new Date(new Date().getTime() + (24 * 60 * 60 * 1000));

O si no le importa cambiar la fecha vigente (en lugar de crear

una nueva fecha):

var dt = new Date();
dt.setTime(dt.getTime() + (24 * 60 * 60 * 1000));

Editar: vea también la respuesta de Jigar y el comentario de David a continuación: var mañana = nueva fecha (); mañana.setDate(mañana.getDate() + 1);

Usando MomentJS:

var today = moment();
var tomorrow = moment(today).add(1, 'days');

(Tenga en cuenta que add modifica la instancia a la que llama, en lugar de devolver una nueva instancia, por lo que today.add(1, ‘days’) modificaría hoy. Es por eso que comenzamos con una operación de clonación en var tomorrow = …. )

Usando DateJS, pero no se ha actualizado en mucho tiempo:

var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();

  • sería más fácil y mejor cerrar la pregunta como duplicados que c&p respuestas.

    – Bergi

    15 de abril de 2014 a las 10:44

  • @Bergi, especialmente porque la respuesta ha cambiado desde que se copió …

    – Miguel

    13 de abril de 2015 a las 19:16

  • ¡Esto no funciona para el horario de verano! Prueba esto con new Date(2016, 10, 6)

    – Chet

    06/10/2016 a las 20:38

avatar de usuario
loxxy

El uso del objeto Date lo garantiza. Por ejemplo, si intenta crear April 31st :

new Date(2014,3,31)        // Thu May 01 2014 00:00:00

Tenga en cuenta que está indexado a cero, por lo que Jan. es 0febrero es 1 etc.

  • Tenga en cuenta que los literales numéricos comienzan con “0” es octal y ha quedado obsoleto. Entonces este código puede causar un error en modo estricto. Y, lo que escribiste es 03 en lugar de 04…

    – tsh

    20 de enero de 2015 a las 4:42


  • @tsh: está indexado a cero. Así que 3 es correcto para abril.

    – Bryan Grezeszak

    16 de febrero de 2018 a las 8:11

¿Ha sido útil esta solución?