【问题标题】:how to create a cron job that resets the values in database after 30 days?如何创建一个 30 天后重置数据库中的值的 cron 作业?
【发布时间】:2015-09-03 20:07:44
【问题描述】:

我正在使用 PHP Codeigniter

我的表用户的字段余额日期类型为 ENUM('Yes','No')。我还有一个名为 reset_date 的字段,它存储用户余额设置为 yes 的日期。所以我想计算 30 天,30 天后想再次将该用户余额重置为 No。因此,对于每个用户,如果他的余额用户设置为是,那么我想计算 30 天并在 30 天后重置余额。

当 Balance 设置为 yes 时,我正在存储当前日期:

if($this->input->post('balance') === "Yes") 
        {

                $key= $this->session->userdata('key');
                $this->reseller_m->deduct($key);/// pass youe id here

                $this->load->helper('date');
                $this->db->set('reset_date',unix_to_human(now()));   
                $this->db->where('id',$id);
                $this->db->update('users', $data);

        }

【问题讨论】:

    标签: php codeigniter cron


    【解决方案1】:

    替代解决方案:

    您可以在没有 cron 作业的情况下执行此操作:只需在名为 balance_timestamp 的列上使用,它是字段设置为 yes 的时间戳。如果没有设置(null),则表示没有。

    现在,只需调用 SELECT .. WHERE balance_timestamp>NOW()-30 而不是 SELECT .. WHERE balance="Yes",它会返回过去 30 天内设置为 yes 的所有项目

    或者,您可以调用您的字段balance_validuntil 并将其设置为NOW()+30。这样更容易选择:SELECT .. WHERE balance_validuntil>=NOW()

    这是编写代码

    if($this->input->post('balance') === "Yes") 
            {
    
                    $key= $this->session->userdata('key');
                    $this->reseller_m->deduct($key);/// pass youe id here
    
                    $this->load->helper('date');
                    $this->db->set('balance_validuntil',unix_to_human(now()+30));   
                    $this->db->where('id',$id);
                    $this->db->update('users', $data);
            }
    }
    

    对于选择

    $this->db->select('*');
    $this->db->where('balance_validuntil >=', unix_to_human(now()));
    

    【讨论】:

    • 你能帮我写一个示例代码吗?我不太明白。
    • 但是 30 天后余额如何设置为 no?
    • 我的意思是我想检查每个用户的重置日期是否比我想设置余额的日期超过 30 天 = 否
    • 30 天后,balance_validuntil 自动为
    • 但这是选择数据:P 您为阅读而写的,但我想用那个特定的 id 将余额更新回 no。以及系统将如何持续检查每个用户的 balance_validuntil
    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    相关资源
    最近更新 更多