Получение% FD в результирующей строке при использовании Date.toLocaleString в JavaScript - PullRequest
0 голосов
/ 31 августа 2018

Я искал способ получить название месяца и название дня недели из Date объекта в javascript и наткнулся на этот пост: Получить название месяца от даты , куда указал Дэвид Стори к методу date.toLocaleString(). Сначала это выглядело так, как будто все работает отлично. Я мог бы сделать что-то вроде этого, чтобы получить название месяца без определения массива:

var someDate = new Date(2018, 8, 28);
var locale = "en-us"
var month = someDate.toLocaleString(locale, { month: "short" }).toLowerCase();

, что даст мне результат aug в переменной месяца. Но я заметил проблему с этим. В конечном итоге я поместил значения месяца и дня недели в скрытые поля формы, которые будут опубликованы вместе с формой. Когда форма была опубликована, я не получил ожидаемые значения. Например, глядя на объявленное значение для поля месяца, вместо aug я получал %FDaug, и то же самое было верно для значения дня недели. Но если я проверил значения в отладчике перед публикацией, они выглядели правильно. Я не знаю, откуда взялся %FD, но это значит, что я не могу использовать этот метод, если нет способа обрезать его первым. Я посмотрел документацию по функции здесь , но не увидел там ничего, связанного с этой проблемой.

А пока я вернулся к использованию массива названий месяцев и дней и выполнил их поиск. Кто-нибудь знает, почему этот дополнительный символ ascii вводится при использовании Date.toLocaleString?

Вот скриншоты из отладчика браузера, я пробовал это в IE, Edge и Chrome. С Chrome все в порядке, но IE и Edge имеют такое поведение. Я не пробовал Firefox

значения перед публикацией ... debugger variables are ok

объявленные значения ...

posted values are wrong

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...