Internet Explorer devuelve longitud de cadena incorrecta [duplicado]

Esta pregunta ya tiene una respuesta aquí:

ToLocaleDateString () cambia en IE11 5 respuestas

Me encontré con un posible error con IE donde llamé al JavaScript.length La función devuelve un valor que está desactivado en 1 si / cuando la cadena se derivó de.toLocaleString().

var d = new Date();
var locale = navigator.language;
var month = d.toLocaleString(locale, { month: "long"});
// month.length will return the length of the month string +1 
//(eg: if month = "March", month.length will return 6.)

Curiosamente, el ejemplo de código anterior devolverá verdadero (en IE) para lo siguiente:(el mes [0] debería ser "M")

month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";

En mi caso particular, esto está causando un problema donde necesito.slice() el mes. Ejemplo: si el mes es marzo, IE devolverá "Ma" paramonth.slice(0,3) en lugar de "Mar".

¿Es este un error conocido con IE? ¿Hay alguna solución o solución para este problema?

Ejecuta estoviolín en IE y Chrome / Firefox / Safari y observe cómomonth.length está mal en IE.

Mi entorno:

SO: Win Server 2012 R2

Versión de IE: 11.0.9600.18231 (Versiones de actualización: 11.0.29)

Configuración regional: inglés / EE. UU.

Respuestas a la pregunta(1)

Su respuesta a la pregunta