¿Cómo obtengo una fecha en formato AAAA-MM-DD?
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
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.
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
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">
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'