Я пытаюсь создать функцию получения операторов, и у меня есть некоторые проблемы с определением диапазона дат.
Данные будут переданы через метод get в следующем формате: ?год = гггг&месяц = мм
Соответствующий столбец таблицы имеет Дата и время тип (2012-02-01).
Я проверил TimeHelper класс и, в частности, TimeHelper::daysAsSql($begin, $end, $fieldName, $timezone = NULL)
но я не уверен, относится ли это к этому делу.
Я думал, смогу ли я создать дату в формате Y-m, используя две переменные year и month, а затем использовать ее в условиях получения данных, но я уверен, что есть более эффективный и правильный способ. Может ли кто-нибудь помочь?
$user_id = $Client['Client']['id'];
$year = $this->request['url']['year'];
$month = $this->request['url']['month'];
//$date_created = date('Y-m');if (!empty($user_id) && (!empty($date_created))) {$Reports = $this->Report->find('all', array(
'fields' => array('amount','currency','date_created','invoice_no'),
'conditions' => array(
'Report.client_id'=> $user_id,
'Report.date_created >=' => $date_created,
'Report.date_created <=' => $date_created
),
)
);
МЕСЯЦ(dateColumn) Возвращает целое число, которое представляет месяц указанной даты.
ГОД(dateColumn) Возвращает целое число, представляющее год указанной даты.
InCakephp использовать как
$user_id = $Client['Client']['id'];
$year = $this->request['url']['year'];
$month = $this->request['url']['month'];
//$date_created = date('Y-m');if (!empty($user_id) && (!empty($date_created))) {$Reports = $this->Report->find('all', array(
'fields' => array('amount','currency','date_created','invoice_no'),
'conditions' => array(
'Report.client_id '=> $user_id,
'MONTH(date_created ) >='=> $month,
'YEAR(date_created ) <=' => $year
),
)
);
Других решений пока нет …