Извлечение данных на основе года и месяца в программеakeStack Overflow

Я пытаюсь создать функцию получения операторов, и у меня есть некоторые проблемы с определением диапазона дат.

Данные будут переданы через метод 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

),
)
);

0

Решение

МЕСЯЦ(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

),
)
);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]