Документация для разработчиков
Темная тема

FormatDate

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

string
FormatDate(
	string format,
	int timestamp,
	int now = time(),
);

Функция возвращает строку отформатированную в соответствии с заданным форматом основываясь на значении времени выраженного в timestamp.

Примечание: фактически эта функция является оберткой для php функции date.

Параметры метода

Параметр Описание С версии
format Формат даты/времени. Кроме стандартных символов поддерживаются расширения:
ФорматЗначениеПример
sagoN секунд назад2 секунды назад
sdiffN секунд1 секунда
iagoN минут назад11 минут назад
idiffN минут32 минуты
isagoN минут M секунд назад4 минуты 12 секунд назад
HagoN часов назад1 час назад
HdiffN часов3 часа
yesterdayконстантавчера
todayконстантасегодня
dagoN дней назад2 дня назад
ddiffN дней8 дней
mdiffN месяцев6 месяцев
YdiffN лет2 года
Fназвание месяца в родительном падежеЯнваря
fназвание месяца в именительном падежеЯнварь
Mсокращенное название месяцаЯнв
lназвание дня неделиВоскресенье
Dсокращенное название дня неделиВс
xинтервал времени в зависимости от его величины.32 секунды назад
49 минут назад
сегодня, 14:33
вчера, 12:32
или в формате сайта без секунд.
Xинтервал времени в зависимости от его величины.сегодня
вчера
или в формате сайта без секунд.
Qинтервал времени в зависимости от его величины.1 день
22 дня
3 месяца
12 лет
timestampметка времени в Unix формате
now метка времени в unix формате от которой будут вычисляться интервалы. По умолчанию - time(). 9.5.7

Примечания

В форматах 'x' и 'X' реализована поддержка будущего времени. Если значение параметра timestamp больше значения параметра now (находится в будущем), то форматы "X" и "x" вернут время в формате сайта без секунд.

Возвращаемое значение

Отформатированная строка.

Смотрите также

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

<?
$rsUser = CUser::GetList($by, $order, array(
	"ID_EQUAL_EXACT" => $USER->GetID()
));
if($arUser = $rsUser->Fetch())
{
	echo "Зарегистрирован на сайте: ",FormatDate("Q", MakeTimeStamp($arUser["DATE_REGISTER"])),".";
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Дмитрий
Правильный вариант вывода даты и времени с учетом часового пояса пользователя:
Код
FormatDate("x", MakeTimeStamp($row['DATE_CREATE']) + CTimeZone::GetOffset())
2
Антон Долганин
Метод довольно обширный и позволяет форматировать дату как угодно. К примеру, время вынесем за span:
Код
<?= FormatDate('<\s\p\a\n>j F Y г.</\s\p\a\n> H:i', $time)?>

Слеш проставлен специально, чтобы символы не считались как форматирующие.
11
Игорь Шевчик
Пример разных интервалов для даты
Код
FormatDate(array(
"tommorow" => "tommorow",      // выведет "завтра", если дата завтрашний день
"today" => "today",              // выведет "сегодня", если дата текущий день
"yesterday" => "yesterday",       // выведет "вчера", если дата прошлый день
"d" => 'j F',                   // выведет "9 июля", если месяц прошел
 "" => 'j F Y',                    // выведет "9 июля 2012", если год прошел
), MakeTimeStamp($arDay["ACTIVE_FROM"]), time()
);
 
2
Игорь Шевчик
Допустим есть количество месяцев: 26
Конструкция вида

Код
FormatDate("Q",  mktime(0, 0, 0, date("m")-26  , date("d"), date("Y")));
 


Даст запись 2 года
4
Антон Долганин
Если мы используем часовые пояса, третий параметр обязательно надо передать, причем сразу со сдвигом:

Код
FormatDate('x', $arItem['POST_DATE_UNIX'], time()+CTimeZone::GetOffset());
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх