Справочник javascript: toLocaleFormat

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

toLocaleFormat

Синтаксис

toLocaleFormat(formatString)

Аргументы

formatString
Строка описания формата в том же формате, что и функция strftime() языка C.

Описание, примеры

Метод 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;
	}
}

 
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum