【问题标题】:Save the results of the date difference on PHP在 PHP 上保存日期差异的结果
【发布时间】:2020-01-28 11:32:55
【问题描述】:

如何将日期差的结果保存到数据库中?

    public function save(){
       $item      = $this->input->post('item');
       $date_in   = $this->input->post('date_in'); //date in
       $date_out  = $this->input->post('date_out'); // date out
       $hasil = $date_in->diff($date_out); 
       //echo $hasil->format('%a'); I will save these results to the database


    $data_insert = array(
        'item'             => $item,
        'date_in'          => $date_in,
        'date_out'         => $date_out,
        'selisih'          => $hasil
      );
//url save
}

【问题讨论】:

  • 什么是框架,ci还是laravel?
  • codeigniter,对不起:D
  • $this->db->insert('mytable', $data_insert);?
  • 是的,我知道,我的意思是如何保存日期差异的结果,当我保存它时,我收到错误调用字符串上的成员函数 diff()。谢谢
  • 因为字符串没有diff方法,需要改成DateTime.(new DateTime($date_in))->diff(new DateTime($date_out))

标签: php codeigniter date diff


【解决方案1】:

字符串没有diff的方法,diffDateTime的方法,需要把字符串改成DateTime。

它会返回DateInterval对象,你可以通过format('%a')获取总天数并插入数据库;

$hasil = (new DateTime($date_in))->diff(new DateTime($date_out));
$hasil = $hasil->format('%a');

$data_insert = array(
  'item'             => $item,
  'date_in'          => $date_in,
  'date_out'         => $date_out,
  'selisih'          => $hasil
);
$this->db->insert('mytable', $data_insert);

【讨论】:

    【解决方案2】:

    如果您想有所作为,您可以使用Carbon 轻松获得它,使用diffInDays 为您提供示例代码:

    $first = \Carbon\Carbon::createFromFormat('Y-m-d H:s:i', $date_in);
    $second = \Carbon\Carbon::createFromFormat('Y-m-d H:s:i', $date_out);
    $diff_in_days = $second->diffInDays($first);
    

    或者在没有碳的情况下获得它:

    $first = new DateTime($date_in);
    $second = new DateTime($date_out);
    $interval = $first->diff($second);
    

    【讨论】:

    • 如何将 $hasil 发布到数据库?错误调用字符串上的成员函数diff()
    • @nanayaja 检查您的收藏栏格式。并使用Laravel docs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    相关资源
    最近更新 更多