2017-11-24 1 views
0

db와 현재 시간을 비교하고 싶습니다. db에 시간을 저장하기위한 strtotime이 정상적으로 작동합니다. 하지만 strtotime을 사용하면 정확한 시간을 알 수없는 현재 시간을 가져올 수 있습니다. 나는 그것을 온라인 웹 사이트에서 확인했다. DB에서PHP에서 strtotime이 정확한 시간을주지 않음

이 부분 저장 시간 :

public function Add($data) 
{ 
    foreach ($data['check'] as $key => $value) { 
     foreach ($value['in'] as $k => $v) { 

      if(!empty($value['in'][$k])) { 
       $allocate = array(
        'check_in' => strtotime(date('h:i A', strtotime($value['in'][$k]))), 
        'check_out' =>strtotime(date('h:i A', strtotime($value['out'][$k]))), 
        //'check_in' => strtotime($value['in'][$k]), 
        //'check_out' =>strtotime($value['out'][$k]), 
        'Days_id' => $key, 
        'User_id' => $data['Users'] 
       ); 

       $this->db->insert('assgin_days',$allocate); 
      } 
     } 
    } 
} 

이 부분은 현재 시간과 DB에서 시간을 비교 :

public function checkuserlogin() 
{ 
    $string = exec('getmac'); 
    $mac = substr($string, 0, 17); 
    $day_of_week = date('N'); 
    date_default_timezone_set("Asia/Karachi"); 
    $time = strtotime(date('h:i A')); 
    $timee = date('h:i A'); 
    $id=$this->user_model->userInfo("id"); 
    $data=$this->db->query("SELECT admin.first_name, days.d_name FROM assgin_days INNER JOIN admin ON admin.id= assgin_days.User_id inner join days ON days.D_id= assgin_days.Days_id where assgin_days.User_id = $id and assgin_days.Days_id =$day_of_week and assgin_days.check_in =<$time and assgin_days.check_out >=$time and assgin_days.is_delete=0")->result_array(); 
} 
+4

체크 데이터베이스 서버와 PHP 서버 시간대 – Deep

+1

* 나는 그것이 나에게 정확한 시간을 제공하지 않는 현재 시간을 얻기 위해 한 strtotime를 사용합니다. *는 그 사실이다. 유닉스 시간이기 때문에 가장 가까운 정수로 반올림됩니다. – Andreas

+4

* 정확한 시간을 알려주지 않습니다 *. 그리고 ** ** 당신에게주는 것은 무엇입니까? [mcve]가 포함되도록 질문을 수정하십시오. 전체 프로그램이 필요하지 않습니다. –

답변

0

하는 (날짜를 사용할 필요 'G를 : 나는'여기 내 코드입니다 strtotime ($ value [ 'in'] [$ k])) 대신 date ('H : i', strtotime hrs 형식을 사용하면 쉽게 저장하고 비교할 수 있습니다.

public function Add($data){ 

    foreach ($data['check'] as $key => $value) { 

    foreach ($value['in'] as $k => $v) { 

    if(!empty($value['in'][$k])) 
    { 
    $allocate = array(
    'check_in' => date('G:i', strtotime($value['in'][$k])), 
    'check_out' =>date('G:i', strtotime($value['out'][$k])), 
    'Days_id' => $key, 
    'User_id' => $data['Users']); 

    $this->db->insert('assgin_days',$allocate); 
    } 
    } 
    } 
    } 
관련 문제