我想从 db 表中选择日期后计算计数变量,并从上个月计算为以下函数
问题我从数据库中选择但我上个月无法检查并计算计数因为我不想在CI3查询中使用 sql 。< / p>
这是我的功能
public function last_month() {
$date = date('m', time());
$this->db->select('*');
$this->db->from('user_agent');
$q = $this->db->get();
$count = 0;
if ($q->num_rows() > 0) {
foreach ($q->result() as $item) {
// echo (int)date("m", strtotime($item->timestamp));
if ((int)date("m", strtotime($item->timestamp)) == (int)date("m", strtotime($date))) {
$count += $item->count;
}
}
} else {
return FALSE;
}
return $count;
}
答案 0 :(得分:1)
不幸的是,MYSQL原生函数将是计算类似内容的最佳方式。 如果您想在上面开始添加月份,比如9 + 9 + 9,那么
SELECT SUM(MONTH(NOW())) AS monthCount FROM `ci_sessions` WHERE `last_activity` > UNIX_TIMESTAMP(STR_TO_DATE("{$currentMonth}", '%Y-%m-%d')) - 1;
,但如果您想知道当前月份的行数是否适合
SELECT COUNT(`last_activity`) AS monthCount FROM `ci_sessions` WHERE `last_activity` > UNIX_TIMESTAMP(STR_TO_DATE("{$currentMonth}", '%Y-%m-%d')) - 1;
为了通过上个月的最后一天,您需要在MySQL之前在PHP中动态使用,您应该以这种方式找到它,例如
$currentMonth = date('Y-m-01');
当然,您需要调整代码以适合您的表名和列名。