Здравствуйте.
В компоненте нужна фильтрация элементов инфоблока по выбранному полю (типа "дата/время"
. Столкнулся вот с чем: если выбрано DATE_ACTIVE_FROM, DATE_ACTIVE_TO, TIMESTAMP_X, DATE_CREATE, то работает вот такой вариант:
Однако, если выбрано собственное свойство (типа S: DateTime), приведённый выше фильтр не сработает (если быть совсем точным, работает условие "больше или равно", условия "меньше" или "меньше или равно", а также диапазон "><" не сработают). Приходится делать так:
Что интересно, второй код не сработает уже с системными DATE_ACTIVE_FROM и пр.
Так и задумано, т.е. для фильтра есть какая-то принципиальная разница между системными и пользовательскими полями типа "дата/время"? Судя по базе данных, формат у полей один и тот же.
Битрикс v. 12.0.10, "Малый бизнес"
В компоненте нужна фильтрация элементов инфоблока по выбранному полю (типа "дата/время"
. Столкнулся вот с чем: если выбрано DATE_ACTIVE_FROM, DATE_ACTIVE_TO, TIMESTAMP_X, DATE_CREATE, то работает вот такой вариант:| Код |
|---|
$arFilter = array(
">=".$arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,$month,1,$year)),
"<=".$arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,$month+$x,1,$year)),
...
); |
Однако, если выбрано собственное свойство (типа S: DateTime), приведённый выше фильтр не сработает (если быть совсем точным, работает условие "больше или равно", условия "меньше" или "меньше или равно", а также диапазон "><" не сработают). Приходится делать так:
| Код |
|---|
$arFilter = array(
">=".$arParams["DATE_FIELD"] => ConvertDateTime("01.".$month.".".$year, "YYYY-MM-DD")." 00:00:00",
"<=".$arParams["DATE_FIELD"] => ConvertDateTime("01.".($month+$x).".".$year, "YYYY-MM-DD")." 23:59:59",
...
); |
Что интересно, второй код не сработает уже с системными DATE_ACTIVE_FROM и пр.
Так и задумано, т.е. для фильтра есть какая-то принципиальная разница между системными и пользовательскими полями типа "дата/время"? Судя по базе данных, формат у полей один и тот же.
Битрикс v. 12.0.10, "Малый бизнес"
Спасибо.