【问题标题】:Codeigniter Get difference of two datesCodeigniter 获取两个日期的差值
【发布时间】:2018-08-21 10:41:49
【问题描述】:

我需要获取两个日期的差值并更新数据库中日期的差值。

型号

public function approve($id, $leave_type, $leave_start, $leave_end) 
{   
    $diffDays= abs($leave_end - $leave_start);  
    $this->db->set('leave_days', $diffDays);
    $this->db->set('status', Approved);
    $this->db->where('id', $id);
    $this->db->update('leave');

    return $this->db->affected_rows() > 0;  
}

abs($leave_end - $leave_start);不管用。但是,当硬编码值设置为 diffDays 时,它可以正常工作。

【问题讨论】:

    标签: php database codeigniter date model


    【解决方案1】:

    将日期格式调整为您使用的格式。

        $leave_start = DateTime::createFromFormat('Y-m-d', $leave_start);
        $leave_end = DateTime::createFromFormat('Y-m-d', $leave_end);
        $diffDays = $leave_end->diff($leave_start)->format("%a");
    
        $this->db->where('id', $id);
        $this->db->update('leave', array('leave_days' => $diffDays));
    

    【讨论】:

      【解决方案2】:
      Please try this for getting a difference between two dates.
      
      
          $date1=date_create($leave_start);
          $date2=date_create($leave_end);
          $diff=date_diff($date1,$date2);
          $days=$diff->format("%a");
      
      
      
          $id = 1;
          $this->db->set('leave_days', $days);
      
          $this->db->where('id', $id);
          $this->db->update('leave');
      

      【讨论】:

      • 什么?天还没明白。
      • 请详细描述您的问题。
      • 在我上面的代码中,状态设置正确,但未设置 diffDays。我更新了上面的代码。当我为 diffDays 给出一个确定的数字时,它会起作用。但这里 'abs($leave_end - $leave_start); ' 不起作用。
      • 你只有更新数据库中的日期差异,所以你为什么在你的代码中使用这个 abs() 函数。
      • 除了 abs() 函数之外,还有其他方法可以获取日期差异
      【解决方案3】:

      $leave_start = '01-01-2018'; $leave_end = '10-01-2018';

      $id = 1;
      $diffDays = abs($leave_end - $leave_start);     
      $this->db->set('leave_days', $diffDays);
      
      $this->db->where('id', $id);
      $this->db->update('leave');
      

      确保您的 $diffDays 具有一定的价值,因为它对我有用。

      【讨论】:

      • 你打印了你的变量“$diffDays”,我认为它有空值吗?
      猜你喜欢
      • 2016-12-30
      • 2020-03-22
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2022-01-05
      相关资源
      最近更新 更多