Как Сравнить Дату В Формате D.m.y И Unix Дату С Точностью До Дня, Месяца Или Года

Добрый день.

В базе хранится дата в формате unix.

Пользователь вводит дату для поиска в формате d.m.Y (другие форматы можно потом дописать).

Как сравнить дату введённую пользователем, например 30.06.2013 с датой в unix формате с точностью до дня, месяца или года, используя CDbCriteria.

Мой код такой:

public function search()

{

$criteria = new CDbCriteria;

$criteria->addSearchCondition(‘date_create’, strtotime($this->date_create), true, ‘LIKE’);

return new CActiveDataProvider($this, array(‘criteria’ => $criteria));

}

НО: здесь сравнение идёт с точностью до секунд.

Можно пойти от обратного и использовать функции БД для работы с датой, на примере MySQL:




$criteria->addSearchCondition('DATE_FORMAT(date_create, "%d.%m.%Y")', $this->date_create, true, 'LIKE');



как то так, вот по функциям http://www.mysql.ru/docs/man/Date_and_time_functions.html

Возможно воспользоватся функцией Yii для парсинга даты.

Например в вашем случае:




$this->date_create = date('Y-m-d', CDateTimeParser::parse($this->date_create, 'dd.MM.yyyy'));

$criteria->compare('create_date',$this->create_date);



Это если ваша дата хранится в формате date. Для других просто измените шаблон ‘Y-m-d’ на нужный вам.