дат больше?
Если да, то как это реализовано под капотом?
Наверное перевод в тустринг
Это дефолтное поведение при сравнении объектов? Напр, стандартный php-шный DateTime так сравнивать можно, но там тоже не увидел, как это происходит
Забвано, но в обоих случаях $now > $limit. Разница только в создании объектов. $now = new Bitrix\Main\Type\DateTime() А $limit приходит из БД (highloadblock), но при этом для записи в БД использовался тот же new Bitrix\Main\Type\DateTime() Где-то по пути из БД теряется флажок userTimeEnabled, а по-умолчанию в сравнении объектов используются все их свойства. Выходит, напрямую сравнивать объекты Bitrix\Main\Type\DateTime в общем случае нельзя
А как вы подымаете из бд?
highloadblock'овским getList'ом
\Bitrix\Main\ORM\Fields\DatetimeField::getFetchDataModifiers - вот где убирается
Вы ж не даты сравниваете, а объекты. Сравнивайте результаты toString например (хотя при использовании часовых поясов нужно проверять)
Обсуждают сегодня