Я использую codeigniter 3.0.3 для этого проекта.Как получить разницу между двумя временными метками?
Я пытаюсь получить разницу между двумя временными метками (часы и часы).
Вот функция пытается сделать так:
public function clock_user_out()
{
$this->db->where('USER_EMAIL', $this->session->userdata('USER_EMAIL'))
$data = $this->db->get('clocked_in_users');
$uemail = $data->row()->USER_EMAIL;
$uclockin = $data->row()->USER_CLOCK_IN;
$uclockout = date(('Y-m-d H:i:s'));
$uhours = $uclockout-$uclockin;
$newdata['USER_EMAIL'] = $uemail;
$newdata['USER_CLOCK_IN'] = $uclockin;
$newdata['USER_CLOCK_OUT'] = $uclockout;
$newdata['USER_WORK_HOURS'] = $uhours;
$this->db->insert('user_hours',$newdata);
$this->db->where('USER_EMAIL', $this->session->userdata('USER_EMAIL'));
$this->db->delete('clocked_in_users');
}
Я считаю, что ошибка, когда я получаю переменную $ uhours путем вычитания $ uclockin от $ uclockout.
В таблице, в которой я работаю, есть 5 столбцов.
- ID [INT]
- USER_EMAIL [VARCHAR]
- USER_CLOCK_IN [временная метка]
- USER_CLOCK_OUT [временная метка]
- USER_WORK_HOURS [время]
Теперь для того, я проверил это были результаты.
- USER_CLOCK_IN = 2015-12-31 07:37:59
- USER_CLOCK_OUT = 2015-12-31 07:38:07
но результат для USER_WORK_HOURS кончался будучи 00: 20:15. Это не имеет смысла для меня. Единственное, что было похоже на это, - это взять 2015 год и разбить его на формат TIME в базе данных?
Это то, что произошло? Использую ли я неправильный формат для этого столбца?
Каков правильный способ сделать это?
Заранее спасибо.
EDIT: Проблема решена благодаря Ashok Chitroda и Хорхе Торрес здесь есть поправки, я должен был сделать
$uhours = $uclockout-$uclockin;
в
$uhours = date('H:i:s' , (strtotime(date('Y-m-d 00:00:00'))+ strtotime($uclockout) - strtotime($clockin)));
, а также я полбы переменную неправильно.
Спасибо всем
вы пробовали date_diff функцию? – JTheDev
@JTheDev Я это видел, но не знал, как это использовать. Это просто функция PHP? – Ddrossi93
@JTheDev на самом деле да, я попробовал это. Я включил $ uclockin и $ uclockout в качестве параметров, и он сказал мне, что у меня были неправильные параметры. может ли он не принимать переменные в качестве параметров? – Ddrossi93