¿Cómo obtengo una fecha en formato AAAA-MM-DD?

Resuelto OneStig asked hace 9 años • 15 respuestas

Normalmente, si quisiera obtener la fecha, podría hacer algo como

var d = new Date(); console.log(d);

El problema al hacer eso es que cuando ejecuto ese código, devuelve:

Lunes 24 de agosto de 2015 4:20:00 GMT-0800 (hora estándar del Pacífico)

¿Cómo podría hacer que el método Date() devuelva un valor en formato "MM-DD-AAAA" para que devuelva algo como:

24/08/2015

O tal vez MM-DD-AAAA H:M

24/8/2016 4:20

OneStig avatar Aug 25 '15 05:08 OneStig
Aceptado

Simplemente use el método incorporado .toISOString()así: toISOString().split('T')[0]. Sencillo, limpio y todo en una sola línea.

Mostrar fragmento de código

Tenga en cuenta que la zona horaria de la cadena formateada es UTC en lugar de la hora local.

leaksterrr avatar Aug 24 '2015 22:08 leaksterrr

El siguiente código es una forma de hacerlo. Si tienes una fecha, pásala a la convertDate()función y te devolverá una cadena en formato AAAA-MM-DD:

var todaysDate = new Date();

function convertDate(date) {
  var yyyy = date.getFullYear().toString();
  var mm = (date.getMonth()+1).toString();
  var dd  = date.getDate().toString();

  var mmChars = mm.split('');
  var ddChars = dd.split('');

  return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]);
}

console.log(convertDate(todaysDate)); // Returns: 2015-08-25
Starfish avatar Aug 24 '2015 22:08 Starfish

Otra forma más:

var today = new Date().getFullYear()+'-'+("0"+(new Date().getMonth()+1)).slice(-2)+'-'+("0"+new Date().getDate()).slice(-2)
document.getElementById("today").innerHTML = today
<div id="today">
Expandir fragmento

DevonDahon avatar Mar 04 '2018 08:03 DevonDahon

Solución de una línea para 'AAAA-MM-DD'

new Date().toLocaleDateString("fr-CA", {year:"numeric", month: "2-digit", day:"2-digit"})

// salida en Nochevieja de 2023: '2023-12-31'

devupper avatar Feb 01 '2023 13:02 devupper