Метод toLocaleFormat обеспечивает больший контроль за представлением даты и времени. Названия месяцев и дней недели представляются согласно языковым настройкам системы. Однако порядок записи месяца и числа и прочие элементы локализации не выбираются автоматически, поскольку вы сами задаёте порядок их следования. Следует принять к сведению, что строка будет локализована согласно настройкам операционной системы, которые могут не совпадать с региональными настройками браузера.
В большинстве случаев вместо данного метода, возможно, следует использовать более общие методы toLocale* или произвести локализацию собственными средствами, опираясь на данные методов get*.
Пример: Неправильное использование toLocaleFormat
var today = new Date();
var date = today.toLocaleFormat("%A, %B %e, %Y"); // Плохой пример
// Выводит что-то вроде "пятница, Октябрь 04, 1957" - ну куда это годится?
Автор: ALastorZ (не зарегистрирован), дата: 24 ноября, 2009 - 09:15
#permalinkХром ругается на отсутствие этого метода у объекта, пришлось пользовать регэкспы =(
Автор: Гость (не зарегистрирован), дата: 6 апреля, 2011 - 13:14
#permalinkЧто-то в Опере не работает, ругается что нет такой функции toLocaleFormat
Автор: Гость (не зарегистрирован), дата: 8 сентября, 2012 - 20:58
#permalink>>>
formatString
Строка описания формата в том же формате, что и функция strftime() языка C.
>>>
хотелось бы расшифровку - я, к примеру, незнаю
хотел привести дату к формату = мм/дд/гггг - чч:мм:сс
не подскажете?
Автор: Роман Сергеевич (не зарегистрирован), дата: 9 сентября, 2012 - 22:46
#permalinkВот, ребятки, набросал функцию, добавляющую требуемый функционал toLocaleFormat для тех браузеров где его нет (то же касается и nodejs):
Date.prototype.toLocaleFormat = function(format) { var f = {y : this.getYear() + 1900,m : this.getMonth() + 1,d : this.getDate(),H : this.getHours(),M : this.getMinutes(),S : this.getSeconds()} for(k in f) format = format.replace('%' + k, f[k] < 10 ? "0" + f[k] : f[k]); return format; };И вот так вот можно форматировать локальную дату:
new Date().toLocaleFormat('%d.%m.%y %H:%M:%s')Автор: Внезапный Гость (не зарегистрирован), дата: 18 апреля, 2013 - 15:52
#permalink+
this.getYear() + 1900 лучше изменить на this.getFullYear() чтобы не было проблем при использовании разных браузеров
Автор: Михаил Кириченко (не зарегистрирован), дата: 24 января, 2014 - 12:22
#permalinkформат %y = 14; %Y = 2014
А также с учётом предложенных выше улучшений:
if(!Date.prototype.toLocaleFormat){ Date.prototype.toLocaleFormat = function(format) { var f = { Y : this.getFullYear(), y : this.getFullYear()-(this.getFullYear()>=2e3?2e3:1900), m : this.getMonth() + 1, d : this.getDate(), H : this.getHours(), M : this.getMinutes(), S : this.getSeconds() }, k; for(k in f) format = format.replace('%' + k, f[k] < 10 ? "0" + f[k] : f[k]); return format; } }