【问题标题】:Completion date status of an event codeigniter事件代码点火器的完成日期状态
【发布时间】:2019-07-17 20:18:56
【问题描述】:

screenshot of codescreenshot of db 2nd screenshot of db 我目前正在开发一个显示事件状态的函数。我在我的数据库中为事件状态创建了一个列。

0 - 取消,1 - 即将到来,2 - 正在进行,3 - 完成。

我想知道如何通过将我的事件日期与 codeigniter 中的当前日期进行比较来更改数据库中的状态值。可能吗?如果是,如何?如果没有,有什么方法可以完成这个功能吗?

snippet of my db

【问题讨论】:

  • 您需要应用 if 条件,例如 if (event is going on) { then update status to progress } else if (event start date is greater than current date) { then update status tocoming } 等等在。或者,如果您希望通过自动更新现有记录的状态,那么您需要为此创建一个 cron 作业,该作业将根据当前日期更改事件状态。
  • 请提供您到目前为止使用的代码,以帮助更好地理解案例。
  • 这是我的模型函数。我已经在执行该功能,但它不断将 eventStatus 列中的值 3 添加到我的数据库中。公共函数 dateStatus(){ $dates = $this->input->post('eventDate'); if(now() == $dates){ $this->db->update('activity', array('eventStatus' => } else if(now() db-> update('activity', array('eventStatus' => } else{ $this->db->update('activity', array('eventStatus' } } @TamirKlein
  • @RohitMittal 这是我将数据库中的日期与 now() 函数进行比较时的模型函数,但我的数据库中没有任何变化。 $resulting = $query->result_array(); foreach($resulting as $resultings){ $date = $resultings['eventDate']; if(now() == $date){ $this->db->update('activity', array('eventStatus' => 2)); } else if(now() db->update('activity', array('eventStatus' => 1)); } else if(now() > $date ){ $this->db->update('activity', array('eventStatus' => 3)); } }
  • @EanJhonDeCastro 你能分享你的数据库完整的屏幕截图吗?并且您的数据库中是否有任何 from 和 to 字段,因为您还需要获得持续状态?

标签: php codeigniter phpmyadmin


【解决方案1】:

您应该使用 PHP 语法而不是 now() 获取当前日期,并且只需要更新单个记录。检查以下代码:

        $resulting = $query->result_array(); 
        $currentDateTime = date('Y-m-d H:i:s');
        foreach($resulting as $resultings){ 
            $date = $resultings['eventDate']; 
            $this->db->where('activityId', $resultings['activityId']);
            if (strtotime($currentDateTime) == strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 1));
            } else if (strtotime($currentDateTime) < strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 3));
            } else if (strtotime($currentDateTime) > strtotime($date)) { 
                 $this->db->update('activity', array('eventStatus' => 1));
            } 
        }

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多