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.

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat', 'Parameters')}}

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 (en-US) y usar la función aportada por esta propiedad format (en-US).

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

BCD tables only load in the browser

Véase también