Подключение модуля: CModule::IncludeModule("grain.datetools");


GDateFormat

GDateFormat::FormatRelativeDate

string GDateFormat::FormatRelativeDate(
	datetime,
	relativefrom=false,
	template=false,
	time_format=false,
	add_tag_for_near_date=false,
	not_show_time_if_midnight=true,
	not_show_time_after_days=false,
	usual_format_longer_than_1_day=false,
	estimate_mode="AUTO"
);

Форматирует дату относительно другой даты, например: "3 дня назад", "через 3 дня", "сегодня", "вчера" и т.д.

datetime
Форматируемая дата. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp
relativefrom
Относительно какой даты считать относительную дату, по умолчанию - текущее время. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp
template
Шаблон вывода даты, в котором #DATE# - дата, #TIME# - время, по умолчанию - "#DATE# #TIME#". Действует только если выводится время.
time_format
Формат вывода времени в формате функции date, по умолчанию - "H:i"
add_tag_for_near_date
Заключить близкие даты (сегодня, вчера, послезавтра и т.д.) в определенный тег, например, при значении "b" дата будет ограничена тегами , по умолчанию - не заключать
not_show_time_if_midnight
Не показывать время, если время 00:00:00, по умолчанию true - не показывать
not_show_time_after_days
Не показывать время для дат, дальше указанного количества дней, по умолчанию - показывать всегда
usual_format_longer_than_1_day
Не выводить "позавчера", "послезавтра" и. т.д., вместо этого выводить "2 дня назад" и пр., по умолчанию - выводить
estimate_mode
Режим показа приблизительных дат - "ON" - включен, "OFF" - выключен, "AUTO" - в соответствии с настройками модуля или константами, по умолчанию - "AUTO"

Пример использования:

if(CModule::IncludeModule("grain.datetools"))
	echo GDateFormat::FormatRelativeDate($arItem["ACTIVE_FROM"],false,false,false,"span",true,30);
else
	echo $arItem["ACTIVE_FROM"];

GDateFormat::GetRelativeDays

GDateFormat::GetRelativeDays(
	datetime,
	relativefrom=false
);

Возвращает количество дней между datetime и relativefrom, например, если relativefrom - текущее время, то 0 - сегодня, 1 - завтра, -1 - вчера и т.д.

datetime
Форматируемая дата. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp
relativefrom
Относительно какой даты считать относительную дату, по умолчанию - текущее время. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp

GDateFormat::GetRelativeDate

GDateFormat::GetRelativeDate(
	datetime,
	relativefrom=false
);

Возвращает массив с ключами "YEARS", "MONTHS", "WEEKS", "DAYS", в которых содержится количество лет, месяцев, недель, дней между датами соответственно. Значения всегда положительные. В массиве также присутствует ключ "AHEAD", если значение при этом ключе равно true, то datetime больше relativefrom.

datetime
Форматируемая дата. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp
relativefrom
Относительно какой даты считать относительную дату, по умолчанию - текущее время. Если строка - интерпретируется как дата в формате сайта или языка для админ. части, если число - то как дата в формате Unix Timestamp

GDateFormat::GetPluralFormatedNumber

GDateFormat::GetPluralFormatedNumber(
	number,
	lang
);

Функция возвращает число, отформатированное с учетом морфологии, например: "1 день", "3 дня", "15 дней".

number
Форматируемое число
lang
Массив из 3 элементов, в котором содержаться языковые сообщения, например: Array("день","дня","дней");

Константы

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

GDATE_FORMAT_DAY_START_SEC - количество секунд после полуночи, с которых начинается день. По умолчанию - 0, т.е. полночь.
GDATEFORMAT_NEVER_SHOW_YEARS - true/false - Никогда не показывать года
GDATEFORMAT_NEVER_SHOW_MONTHS - true/false - Никогда не показывать месяцы
GDATEFORMAT_NEVER_SHOW_WEEKS - true/false - Никогда не показывать недели

GDATEFORMAT_ESTIMATE_MODE - true/false - Включить оценочный режим отображения дат
GDATEFORMAT_ESTIMATE_NOT_SHOW_MONTHS_FROM - Не показывать месяцы начиная с количества дней
GDATEFORMAT_ESTIMATE_NOT_SHOW_WEEKS_FROM - Не показывать недели начиная с количества дней
GDATEFORMAT_ESTIMATE_NOT_SHOW_DAYS_FROM - Не показывать дни начиная с количества дней
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru