【发布时间】:2022-01-18 18:58:18
【问题描述】:
我目前正在开发一个 php CodeIgniter 项目,我需要在本周一和本周日之间获取数据并执行计数。我能够获取本周周一和本周周日的日期以及计数,但在另一件事中面临问题,即“我需要在日期更改后立即在周日晚上重置计数,即周日晚上 11:59 PM,以便尽快如果计数为 40,则此时间达到,然后在星期一上午 12:00 计数应从 0 重新开始。 以下是我编写的函数:
$this_week_start = date("Y-m-d" , strtotime("monday this week"));
$this_week_end = date("Y-m-d" , strtotime("sunday this week"));
$table = $this->db->table('orders');
$table->select('*')->where("status_id = 16")->where("updated_at >= '$this_week_start'")->where("updated_at <= '$this_week_end'");
$data = $table->get()->getResultArray();
if ($data)
return $data;
在这方面的任何帮助将不胜感激。
【问题讨论】:
-
当然是自动的。您的查询将在午夜重置开始和结束时间,您将假设返回 NO Rows,因此计数将为 0
-
@Andy 我想你完全误解了我,这里提供的代码是完全相关的。此外,我在这里没有提到对我有用的地方,最后我明确提到“这方面的任何帮助”。就您而言,代码不会对数据库进行任何更新,我还提到我正在获取数据计数。
-
“重置记录”是什么意思?您发布的代码从
orders表中获取所有数据,其中status_id = 16和updated_at时间介于“本周星期一”和“本周星期日”之间。当您使用->getResultsArray()获取该数据时,它只会为您提供数据库中与这些条件匹配的任何内容。生成的数据是动态的,因此无需“重新启动”任何东西。在任何给定时间点重新运行脚本都会产生动态数据。如果返回的数据是数组格式,PHP 索引从 0 开始,所以不需要“重启”任何东西。 -
@RiggsFolly 是的,但是这段代码不会在午夜返回零计数,而是在清晨的某个地方重置。
标签: php mysql codeigniter codeigniter-4