Date.prototype.toLocaleDateString()

El método toLocaleDateString() devuelve una cadena con una representación de la fecha sensible al lenguaje. Los nuevos argumentos locales y options permiten a las aplicaciones especificar el lenguaje cuyas convenciones de formato deben usarse y permitir personalizar el comportamiento de la función. En implementaciones anteriores, las cuales ignoran los argumentos locales y options, el configuración regional usada y el formato de cadena devuelto dependen completamente de la implementación.

Sintaxis

dateObj.toLocaleDateString([locales [, options]])

Parámetros

Compruebe la sección de Compatibilidad con su navegador para ver qué navegadores suportan los argumentos locales y options, y el Ejemplo: Comprobando el soporte para los argumentos locales y options para detectar dicha característica.

El valor por defecto para cada propiedad del componente date-time es undefined, pero si las propiedades weekday, year, month, day son todas undefined, entonces year, month, y day se asumen tener el valor "numeric".

Valor devuelto

Una cadena representando una porción de fecha de la instancia Date indicada de acuerdo con las convenciones específicas del lenguaje.

Ejemplos

Usando toLocaleDateString()

En un caso básico sin especificar una configuración regional, se devolverá una cadena formateada en la configuración regional y las opciones por defecto.

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));

// toLocaleDateString() sin argumentos dependientes de la implementación,
// de la configuración regional por defecto y la zona horaria por defecto
console.log(date.toLocaleDateString());
// → "12/11/2012" si se ejecuta en una configuración regional en-US con zona horaria America/Los_Angeles

Comprobando el soporte para los argumentos locales y options

Los argumentos locales y options no son soportados aún por todos los navegadores. Para comprobar si una implementación los soporta, puede usar el requerimiento To check whether an implementation supports them already, you can use the requirement that illegal language tags are rejected with a RangeError exception:

function toLocaleDateStringSupportsLocales() {
  try {
    new Date().toLocaleDateString('i');
  } catch (e) {
    return e.name === 'RangeError';
  }
  return false;
}

Using locales

Usando locales

Este ejemplo muestra algunas de las variaciones en los formatos de configuración regional de las fechas. Para poder obtener el formato del idioma usado en la interfaz de usuario de su aplicación, asegúrese de especificar el idioma (y posiblemente algunos idiomas alternativos) usando el argumento locales:

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// Los formatos de abajo asumen la zona horaria local de la configuración regional;
// America/Los_Angeles para US

// El inglés de USA hace uso de orden mes-día-año
console.log(date.toLocaleDateString('en-US'));
// → "12/19/2012"

// El inglés británico hace uso del orden día-mes-año
console.log(date.toLocaleDateString('en-GB'));
// → "20/12/2012"

// El coreano hace uso del orden año-mes-día
console.log(date.toLocaleDateString('ko-KR'));
// → "2012. 12. 20."

// Evento para persa. Es difícil convertir manualmente la fecha a Solar Hijri
console.log(date.toLocaleDateString('fa-IR'));
// → "۱۳۹۱/۹/۳۰"

// El árave en la mayoría de paises arabehablantes hace uso de los dígitos árabes
console.log(date.toLocaleDateString('ar-EG'));
// → "٢٠‏/١٢‏/٢٠١٢"

// Para el japonés, las aplicaciones quieren poder usar el calendario japonés,
// donde 2012 era el año 24 de la era Heisei
console.log(date.toLocaleDateString('ja-JP-u-ca-japanese'));
// → "24/12/20"

// Cuando solicite un idioma que no esté soportado, por ejemplo el balinés,
// incluya un idioma alternativo, en este caso el indonesio
console.log(date.toLocaleDateString(['ban', 'id']));
// → "20/12/2012"

Usando options

Los resultados aportados por toLocaleDateString() pueden ser personalizados usando el argumento options:

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// Solicita el día de la semana junto a una fecha larga
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
console.log(date.toLocaleDateString('de-DE', options));
// → "Donnerstag, 20. Dezember 2012"

// Una aplicación puede querer usar UTC y hacer que sea visible
options.timeZone = 'UTC';
options.timeZoneName = 'short';
console.log(date.toLocaleDateString('en-US', options));
// → "Thursday, December 20, 2012, GMT"

Performance

Cuando se formatea números largos de fechas, es mejor crear un objeto Intl.DateTimeFormat y usar la función aportada por esta propiedad format.

Especificaciones

Especificación
ECMAScript (ECMA-262)
La definición de 'Date.prototype.toLocaleDateString' en esta especificación.
ECMAScript Internationalization API (ECMA-402)
La definición de 'Date.prototype.toLocaleDateString' en esta especificación.

Compatibilidad con el navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
toLocaleDateStringChrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 5.5Opera Soporte completo 5Safari Soporte completo 1WebView Android Soporte completo 1Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 10.1Safari iOS Soporte completo 1Samsung Internet Android Soporte completo 1.0nodejs Soporte completo 0.1.100
IANA time zone names in timeZone optionChrome Soporte completo 24Edge Soporte completo 14Firefox Soporte completo 52IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 6.1WebView Android Soporte completo 4.4Chrome Android Soporte completo 25Firefox Android Sin soporte NoOpera Android Soporte completo 14Safari iOS Soporte completo 7Samsung Internet Android Soporte completo 1.5nodejs Soporte completo 0.12
localesChrome Soporte completo 24Edge Soporte completo 12Firefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Soporte completo 4.4Chrome Android Soporte completo 25Firefox Android Soporte completo 56Opera Android Soporte completo 14Safari iOS Soporte completo 10Samsung Internet Android Soporte completo 1.5nodejs Soporte completo 13.0.0
Soporte completo 13.0.0
Soporte parcial 0.12
Notas
Notas Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
optionsChrome Soporte completo 24Edge Soporte completo 12Firefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Soporte completo 4.4Chrome Android Soporte completo 25Firefox Android Soporte completo 56Opera Android Soporte completo 14Safari iOS Soporte completo 10Samsung Internet Android Soporte completo 1.5nodejs Soporte completo 0.12

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Ver notas de implementación.
Ver notas de implementación.

Véase también