⊗jsPmTmAA 322 of 505 menu

Ajuste automático de fechas en JavaScript

JavaScript tiene una característica muy interesante y útil: si al crear un objeto Date se especifica un momento en el tiempo incorrecto, se recalculará automáticamente a uno correcto. Veamos un ejemplo.

Como sabes, no existe la fecha 35 de enero. El día máximo posible de enero es 31. Resulta que nuestra fecha 35 de enero tiene 4 días de más. JavaScript en tal caso simplemente sumará esos 4 días extra al mes siguiente:

let date = new Date(2018, 0, 35); console.log(date); // resultará el 4 de febrero

Se pueden especificar no solo días extra, sino también meses. En este caso, hay que recordar que los meses comienzan desde cero, por lo que el último mes válido es el 11. Si se especifica el mes 12, se obtendrá enero del año siguiente:

let date = new Date(2018, 12, 1); // especificamos el mes 12 console.log(date); // resultará el 1 de enero de 2019

El ajuste descrito también funciona hacia atrás. Como sabes, el día mínimo del mes es el día número 1. Por lo tanto, si se especifica el día número 0, se obtendrá el último día del mes anterior:

let date = new Date(2018, 1, 0); // especificamos el día cero console.log(date); // resultará el 31 de enero

También se pueden especificar valores negativos para días y meses. En este caso, hay que recordar que el día mínimo tiene el número 1, y el mes mínimo tiene el número 0. Esto significa que el día menos uno corresponde al 2 día contando desde el final del mes anterior, y el mes menos uno corresponde simplemente al último mes del año anterior:

let date = new Date(2018, 1, -1); // especificamos -1 día console.log(date); // resultará el 30 de enero
let date = new Date(2018, -1, 1); // especificamos -1 mes console.log(date); // resultará el 1 de diciembre de 2017

Todo lo dicho anteriormente funciona de manera análoga con horas, minutos y segundos:

let date = new Date(2018, 0, 1, 24, 0, 0); // especificamos la hora 24 console.log(date); // resultará el 2 de enero, 0 horas
let date = new Date(2018, 0, 1, 25, 0, 0); // especificamos la hora 25 console.log(date); // resultará el 2 de enero, 1 hora

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 1, 35); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 15, 1); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 3, 31); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 1, 31); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 12, 33); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 33, 33); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 5, 0); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 0, 0); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, -12, -33); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 0, 1, 23, 0, 60); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 0, 1, 23, 60, 0); console.log(date); // ¿qué fecha será?

Determina a qué fecha JavaScript convertirá el siguiente momento en el tiempo:

let date = new Date(2018, 0, 1, 100, 100, 100); console.log(date); // ¿qué fecha será?
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar