2017-11-24 13 views
0

私は現在の時間とdbからの時間を比較したいと思います。 dbの時間を格納するためのstrtotimeは正常に動作しています。しかし、私はstrtotimeを使って現在の時刻を取得すると、正確な時刻が得られません。私はそれをオンラインのウェブサイトからチェックしました。ここに私のコードは次のとおりです。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を使用しています。*それは本当です。それはUNIX時間なので、最も近い整数に丸められます。 – Andreas

+4

*私は正確な時間を与えていない*。そして**それはあなたに何を与えますか? [mcve]が含まれるように質問を編集してください。プログラム全体は必要ありません。 –

答えて

0

は日付を使用する必要があります( 'G:私は' 、strtotime($ value ['in'] [$ k]))の代わりに、日付を24に変更します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); 
    } 
    } 
    } 
    } 
関連する問題