Cómo formatear una fecha en JavaScript

Aquí hay una tarea muy común: ¿cómo se formatea una fecha con JavaScript?

Dado unFechaobjeto:

const date = new Date('July 22, 2018 07:22:13')

hay muchos métodos que generarán una cadena que represente esa fecha.

Hay algunos integrados. Los enumero todos, junto con un comentario que muestra una salida de muestra:

date.toString()
// "Sun Jul 22 2018 07:22:13 GMT+0200 (Central European Summer Time)"
date.toTimeString() //"07:22:13 GMT+0200 (Central European Summer Time)"
date.toUTCString() //"Sun, 22 Jul 2018 05:22:13 GMT"
date.toDateString() //"Sun Jul 22 2018"
date.toISOString() //"2018-07-22T05:22:13.000Z" (ISO 8601 format)
date.toLocaleString() //"22/07/2018, 07:22:13"
date.toLocaleTimeString()	//"07:22:13"

No está limitado a esos, por supuesto, puede usar métodos de nivel más bajo para obtener un valor fuera de una fecha y construir cualquier tipo de resultado que desee:

date.getDate() //22
date.getDay() //0 (0 means sunday, 1 means monday..)
date.getFullYear() //2018
date.getMonth() //6 (starts from 0)
date.getHours() //7
date.getMinutes() //22
date.getSeconds() //13
date.getMilliseconds() //0 (not specified)
date.getTime() //1532236933000
date.getTimezoneOffset() //-120 (will vary depending on where you are and when you check - this is CET during the summer). Returns the timezone difference expressed in minutes

Todos dependen de la zona horaria actual de la computadora. Existen versiones UTC equivalentes de estos métodos, que devuelven el valor UTC en lugar de los valores adaptados a su zona horaria actual:

date.getUTCDate() //22
date.getUTCDay() //0 (0 means sunday, 1 means monday..)
date.getUTCFullYear() //2018
date.getUTCMonth() //6 (starts from 0)
date.getUTCHours() //5 (not 7 like above)
date.getUTCMinutes() //22
date.getUTCSeconds() //13
date.getUTCMilliseconds() //0 (not specified)

Más tutoriales de js: