2015-07-13 18 views
1

我無法插入時間值20:00:00或更多。當時間是00:00:00到19:59:00時,它可以正常工作。我無法想象,因爲它可以工作19小時。我是開發新手。我已經做出了一些努力來弄清楚。但我不能。請幫幫我。我已經添加了下面的html,php編碼和mysql'考勤'表。無法在19:59:00之後在mysql中使用php插入時間

CREATE TABLE IF NOT EXISTS `attendance` (
    `id` int(11) NOT NULL, 
     `shift_start_time` time NOT NULL, 
     `empid` varchar(50) NOT NULL, 
     `user` varchar(100) NOT NULL, 
     `checkin` datetime(6) NOT NULL, 
     `checkout` datetime NOT NULL, 
     `worked_hours` time NOT NULL, 
     `latehours` time NOT NULL, 
     `late_seconds` int(11) NOT NULL, 
     `Break1` time NOT NULL, 
     `Break1out` time NOT NULL, 
     `Break1hours` time NOT NULL, 
     `Break2` time NOT NULL, 
     `Break2out` time NOT NULL, 
     `Break2hours` time NOT NULL, 
     `Lunch_Break` time NOT NULL, 
     `Lunch_Breakout` time NOT NULL, 
     `Lunch_Breakhours` time NOT NULL, 
     `A_Break` time NOT NULL, 
     `A_Breakout` time NOT NULL, 
     `A_Breakhours` time NOT NULL, 
     `A_BreakReason` varchar(1000) NOT NULL, 
     `totalbreak` time NOT NULL, 
     `workhrs` time NOT NULL, 
     `meeting_hours` time NOT NULL, 
     `checkindate` date NOT NULL 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=350 ; 




<form action="checkincheckout.php" method="post"><table><tr><td><label for="line_items"                 > 
                    <p class="text-info">Check In</p> 
                    </label><input type="radio" class="form-control" placeholder="Enter Project Name" name="checkin" value="<?php 
                           echo date('Y-m-d H:i:s');?> " > 
    </td><td><label for="line_items"                 > 
                    <p class="text-info">Check Out</p> 
                    </label><input type="radio" class="form-control" placeholder="Enter Project Name" name="checkout" value="<?php echo date('Y-m-d H:i:s');?>"></td></tr><tr><td colspan="2"><input type="Submit" class="btn btn-primary" value="Submit" name="submit" > 


    </script></td></tr></table></form> 

//checkingcheckout.php 

    if(isset($_POST['checkin'])) 
     { 
      //$checkin =date("Y-m-d H:i:s", $_POST['checkin']); 
       $checkin = $_POST['checkin']; 
       $checkindate=substr('$checkin',0,10); 

       if($checkin>$_SESSION['START_TIME']) 
       { 
        $timeDiff=strtotime($checkin)-strtotime($_SESSION['START_TIME']); 



    $init = $timeDiff; 
    $hours = floor($init/3600); 
    $minutes = floor(($init/60) % 60); 
    $seconds = $init % 60; 

    echo "$hours:$minutes:$seconds"; 
    $ela=$hours.'+'.$minutes.'+'.$seconds; 

         $sql = mysql_query("INSERT INTO `attendance`(shift_start_time,empid,user,checkin,latehours,late_seconds,checkindate) VALUES ('".$_SESSION['START_TIME']."','".$_SESSION['USERNAME']."','".$_SESSION['NAME']."','$checkin','$ela','$timeDiff','$checkindate')"); 
       } 
+0

當您嘗試添加'20:00:00'時會發生什麼?請在最後一行('$ sql = mysql_query(...)或死(...)'')末尾加上'或者死(mysql_error())' – Random

+0

時間根本不會被插入。我也檢查過數據庫。 –

+0

什麼是信息? – Random

回答

0

在我們插入表之前,php時間應該轉換爲我的sql兼容時間格式。您可以使用下面的代碼爲

$date = DateTime::createFromFormat('H:i A', $php_time); 
$sql_time = $date->format('H:i:s'); 
  • $ php_time - 時間格式在PHP

  • $ SQL_TIME - 時間格式在MySQL

0

所以,你需要轉換時間格式從PHPMYSQL

這是例子,我有t它的意思

$time_from_input = date("y-m-d", (strtotime($_POST['time'])); 

現在這個時候被轉換成MYSQL格式。

反之亦然。 MYSQL時間到PHP我們需要改變你想要顯示的格式。只是搜索或玩date()功能。