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

ParseDateTime

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

mixed
ParseDateTime(
	string datetime,
	string format = FORMAT_DATETIME
);

Разбивает дату и время на части в соответствии с заданным форматом. Функция возвращает массив описывающий дату и время в соответствии с заданным форматом, если произошла ошибка - возвращает "false".

Параметры функции

ПараметрОписание
datetime Дата и время заданные в соответствии с форматом указанным в параметре format.
format Формат даты и времени. Вы можете использовать любые обозначения, но желательно использовать символы формата даты и времени допустимые в системе, а именно:
  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды
Необязательный параметр. По умолчанию равен константе FORMAT_DATETIME, хранящей текущий формат времени сайта или языка (для административной части).

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

<?
$datetime = "21.01.2004 23:44:15";
$format = "DD.MM.YYYY HH:MI:SS";
echo "Исходное время: ".$datetime."<br>";
echo "Формат: ".$format."<hr>";
if ($arr = ParseDateTime($datetime, $format))
{
	echo "День:    ".$arr["DD"]."<br>";    // День: 21
	echo "Месяц:   ".$arr["MM"]."<br>";    // Месяц: 1
	echo "Год:     ".$arr["YYYY"]."<br>";  // Год: 2004
	echo "Часы:    ".$arr["HH"]."<br>";    // Часы: 23
	echo "Минуты:  ".$arr["MI"]."<br>";    // Минуты: 44
	echo "Секунды: ".$arr["SS"]."<br>";    // Секунды: 15
}
else echo "Ошибка!";
?>
<?
// выведем дату в формате вида "21 января, 2004"

$datetime = "21.01.2004"; // дата задана в формате текущего сайта

// FORMAT_DATETIME - константа содержащая формат времени текущего сайта
$arr = ParseDateTime($datetime, FORMAT_DATETIME);

// 21 января, 2004
echo $arr["DD"]." ".ToLower(GetMessage("MONTH_".intval($arr["MM"])."_S")).", ".$arr["YYYY"];
?>
<?
// вывод даты активности элемента информационного блока 
// в произвольном формате

// подключим модуль информационных блоков
if (CModule::IncludeModule("iblock"))
{
	// выберем произвольный элемент информационного блока
	$rsElement = CIBlockElement::GetByID(32675);
	$arElement = $rsElement->Fetch();

	// получим дату активности выбранного элемента
	// выбранную в соответствии с форматом времени текущего сайта
	$date_active = $arElement["ACTIVE_FROM"]; // 28.01.2005
    
	// получим формат времени текущего сайта
	$site_format = CSite::GetDateFormat(); // DD.MM.YYYY HH:MI:SS

	// получим массив описывающий дату активности выбранного элемента
	if ($arr = ParseDateTime($date_active, $site_format))
	{
		/*
		структура полученного массива $arr:
		Array
		(
			[DD] => 28
			[MM] => 1
			[YYYY] => 2005
			[HH] => 0
			[MI] => 0
			[SS] => 0
		)
		*/

		// переведем дату активности в Unix-формат
		$stmp = mktime(
			$arr["HH"], $arr["MI"], $arr["SS"], 
			$arr["MM"], $arr["DD"], $arr["YYYY"]
		);

		// выведем дату активности выбранного элемента в произвольном виде
		// с помощью стандартной PHP функции date
		echo date("d F Y", $stmp); // 28 January 2005
	}
}
?>


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Олег Постоев
Вероятно, есть ошибка в примере. Ключ MM не возвращает "1", будет "01".
Что бы получить значение месяца без ведущего нуля можно использовать такое выражение:
Код
preg_replace("/^0/", "", $arr["MM"]);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх