new \Bitrix\Main\Entity\IntegerField('ID', [ 'primary' => true, 'autocomplete' => true, 'title' => 'Id', ]), 'CREATED_AT' => new \Bitrix\Main\Entity\DatetimeField('CREATED_AT', [ 'default_value' => new \Bitrix\Main\Type\DateTime(), 'title' => 'CreatedAt', 'in_form' => false, ]), 'UPDATED_AT' => new \Bitrix\Main\Entity\DatetimeField('UPDATED_AT', [ 'title' => 'UpdatedAt', 'in_form' => false, ]), ); } /** * @param $id * @param array $fields * @return \Bitrix\Main\ORM\Data\UpdateResult * @throws \Bitrix\Main\ObjectException */ public static function update($id, $fields) { foreach (static::getEntity()->getFields() as $field){ if(is_a($field, DatetimeField::class)){ if(isset($fields[$field->getName()]) && !is_a($fields[$field->getName()], DateTime::class)) { $fields[$field->getName()] = new \Bitrix\Main\Type\DateTime($fields[$field->getName()]); } } } $fields = array_merge($fields, [ 'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), // date(CDatabase::DateFormatToPHP(FORMAT_DATETIME)) ]); $result = parent::update($id, $fields); return $result; } /** * @param array $fields * @return \Bitrix\Main\ORM\Data\AddResult * @throws \Bitrix\Main\ObjectException */ public static function add($fields) { $fields = array_merge($fields, [ 'CREATED_AT' => new \Bitrix\Main\Type\DateTime(), 'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), ]); $result = parent::add($fields); return $result; } }