Нет загловка
Оглавление сайта

Работа с датами

Битрикс:
1. CDatabase::FormatDate:
// зададим дату
$date = "31.12.2007";
// укажем формат этой даты
$format = "DD.MM.YYYY";

// получим формат текущего сайта
$new_format = CSite::GetDateFormat("SHORT"); // YYYY-MM-DD

// переведем дату из одного формата в другой
$new_date = $DB->FormatDate($date, $format, $new_format);
// в результате получим дату в новом формате
echo $new_date; // 2007-12-31
ПРИМЕР: $date1 = $DB->FormatDate($filter['date1'], "DD.MM.YYYY", "YYYY-MM-DD");

----------------------------------------------------------------------------
2. MakeTimeStamp(
string datetime,
string format = FORMAT_DATETIME
);
ПРИМЕР: $unixTime = MakeTimeStamp($arItem['PROPERTY_PUBLICATION_DATE_VALUE'];

3. Из формата сайта в любой формат
РАЗНИЦА В ДНЯХ: количество дней в отпуске
$dateStart = ConvertDateTime($item['ACTIVE_FROM'], "YYYY-MM-DD"); // из формата сайта в любой формат
$dateEnd = ConvertDateTime($item['ACTIVE_TO'], "YYYY-MM-DD");
$daysCount = date_diff(new DateTime($dateEnd), new DateTime($dateStart))->days + 1;

----------------------------------------------------------------------------
страницы:
https://dev.1c-bitrix.ru/api_help/main/functions/date/index.php - обзор функций для работы с датой и временем
https://dev.1c-bitrix.ru/community/webdev/user/11948/blog/7345/ - Долганин блог

            
PHP:
date('d.m.Y') - выведет 10.03.2023
date("Y-m-d H:i:s") - выведет 2001-03-10 17:16:18 (формат MySQL DATETIME)
Для сохранения элемента инфоблока со свойством типа Дата, нужно привести дату к формату сайта, если она отличается
$siteDateFormat = CSite::GetDateFormat("SHORT");

$arFields = [
"IBLOCK_ID" => $arParams['IBLOCK_ID'],
"PROPERTY_VALUES" => [
'DATE' => $DB->FormatDate($date, 'DD.MM.YYYY', $siteDateFormat),
],
"NAME" => '123',
];
Для фильтрации по полю DATE_ACTIVE_FROM нужна дата в формате сайта. Можно получить:
echo "Сегодня: ".ConvertTimeStamp();