2016-02-04 3 views
0

В I.E. 11, в окне консоли, если я набираю new Date().toLocaleString(), я получаю что-то вроде «2/4/2016 9:12:05 AM». Однако, если я добавлю .length, я получаю 32. Строка 19 «читаемых» символов, так что с 32, и есть ли опция, которую я могу вызвать, которая даст мне строку длиной 19?JavaScript new Date(). ToLocaleString() length

Если я нахожу new Date(new Date().toLocaleString()), я получаю [дату] Недействительную дату, тогда как если я нахожу new Date(new Date("2/4/2016 9:12:05 AM")), я получаю законную дату.

Моя локализация - «en-US».

+0

'console.log (. Новый Date() toLocaleString() дробление ("") отображение (функция (с) {возвращение c.charCodeAt (0);}..))' – Pointy

+0

Кроме того, что языковой стандарт применяется к тестам, которые вы делаете? – Pointy

+0

ru-US (обновленный вопрос) –

ответ

0

Вы берете длину всей строки. В этом случае возвращение этой функции: Чт 04 Фев 2016 17:28:09 GMT + 0200 (стандартное время FLE) < - 32 символа. Попробуйте получить новую дату как переменную и использовать ее.

var пример = новая дата();

+0

То, что функция возвращает в вашей локали, не обязательно совпадает с тем, что она возвращает в локали OP. – Pointy

+0

Правильно, но формат будет всегда одинаковым. * если нет дополнительных методов новый Date(); вернет ваше местное время и дату в этом формате »Thu Feb 04 2016 17:28:09 GMT + 0200« –

+0

Проблема не в том, что возвращает Date(), но что возвращает toLocaleString(). –

0

Это происходит и с IE11. Я столкнулся с той же проблемой, исправил ее, используя следующую дату, таким образом, вы не видите невидимый пустой символ.

var cleanDate = (new Date()).toISOString(); 

Здесь вы найдете решение проблемы, связанной с вашей проблемой, если вы не хотите использовать вышеуказанный метод получения даты.

//Custom extension method to replace all found value. 
String.prototype.replaceAll = function(find, replace) { 
var target = this; 
    return target.split(find).join(replace); 
}; 
//Find there is invisible empty character 
var emptyCode = (new Date()).toLocaleString().charCodeAt(0); 
var cleanDate = undefined; 
if(emptyCode === 8206) 
{ 
    //Remove all invisiable empty characters 
    cleanDate =(new Date()).toLocaleString().replaceAll(String.fromCharCode(emptyCode),''); 
} 

Метод расширения можно найти в нижнем столбце. How to replace all occurrences of a string in JavaScript?

Смежные вопросы