Сохранить результаты разницы дат на PHP - PullRequest
0 голосов
/ 28 января 2020

как сохранить результаты разницы дат для сохранения в базе данных?

    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
}

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Строка не имеет метода diff, diff - это метод DateTime , вам нужно изменить строку на DateTime.

И она вернет DateInterval объект, вы можете получить общее количество дней в формате ('% 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);
0 голосов
/ 28 января 2020

Если вы хотите получить разницу, вы можете получить ее с помощью Углерод , легко используя 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);
...