无法使用php在mysql中插入19:59:00之后的时间

无法使用php在mysql中插入19:59:00之后的时间,php,mysql,Php,Mysql,我无法插入时间值20:00:00或更高。当时间为00:00:00至19:59:00时效果良好。我无法计算,因为它可以工作19小时。我是新来的发展中国家。我做了好几次努力想弄明白。但是我不能。请帮帮我。我在下面添加了html、php编码和mysql的“考勤”表 CREATE TABLE IF NOT EXISTS `attendance` ( `id` int(11) NOT NULL, `shift_start_time` time NOT NULL, `emp

我无法插入时间值20:00:00或更高。当时间为00:00:00至19:59:00时效果良好。我无法计算,因为它可以工作19小时。我是新来的发展中国家。我做了好几次努力想弄明白。但是我不能。请帮帮我。我在下面添加了html、php编码和mysql的“考勤”表

 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')"); 
                 }
创建不存在的表“考勤”(
`id`int(11)不为空,
`shift_start_time`时间不为空,
`empid`varchar(50)不为空,
`用户'varchar(100)不为空,
`签入日期时间(6)不为空,
`checkout`datetime不为空,
`工作时间不为空,
`latehours `时间不为空,
`late_seconds`int(11)不为空,
`Break1`时间不为空,
`Break1out`时间不为空,
`Break1hours`时间不为空,
`Break2`时间不为空,
`Break2out`时间不为空,
`Break2hours`时间不为空,
`午餐休息时间不为空,
`午餐突破`时间不为空,
`午餐和休息时间`时间不为空,
`A_Break `时间不为空,
`A_Breakout `时间不为空,
`A_Breakhours `时间不为空,
`A_BreakReason`varchar(1000)不为空,
`totalbreak`时间不为空,
`工时`时间不为空,
`会议时间不为空,
`checkindate`日期不为空
)引擎=InnoDB默认字符集=拉丁1自动增量=350;

签入


在我们插入表之前,php时间应该转换为我的sql兼容时间格式。你可以使用下面的代码

$date = DateTime::createFromFormat( 'H:i A', $php_time);
$sql_time = $date->format( 'H:i:s');
  • $php_time-php中的时间格式

  • $sql\u time-mysql中的时间格式


在插入表之前,php时间应该转换为我的sql兼容时间格式。你可以使用下面的代码

$date = DateTime::createFromFormat( 'H:i A', $php_time);
$sql_time = $date->format( 'H:i:s');
  • $php_time-php中的时间格式

  • $sql\u time-mysql中的时间格式


  • 因此,您需要将时间格式从
    PHP
    转换为
    MYSQL

    这是一个例子,我已经测试过了

    $time_from_input = date("y-m-d", (strtotime($_POST['time']));
    
    现在这一次被转换成MYSQL格式


    反之亦然。MYSQL时间到PHP我们需要更改您想要显示的格式。只需搜索或使用
    date()
    函数即可

    因此您需要将时间格式从
    PHP
    转换为
    MYSQL

    这是一个例子,我已经测试过了

    $time_from_input = date("y-m-d", (strtotime($_POST['time']));
    
    现在这一次被转换成MYSQL格式


    反之亦然。MYSQL时间到PHP我们需要更改您想要显示的格式。只需搜索或使用
    date()
    函数即可

    尝试添加
    20:00:00
    时会发生什么情况?请在最后一行(
    $sql=mysql\u query(…)或die(…)
    )末尾添加
    或die(mysql\u error())
    )时间根本没有插入。我也签入了数据库。消息是什么?我在添加或死亡时出现以下错误(mysql_错误):'-27:-5:-25列计数与第1行的值计数不匹配'Simplify。。你不需要在无线电值中输入日期。只需发送一个任意值1-就可以知道它已被单击。此外,您不需要太多地处理日期,只需以数据库所需的格式生成它-$checkin=date(“Y-m-d”);尝试添加
    20:00:00
    时会发生什么情况?请在最后一行(
    $sql=mysql\u query(…)或die(…)
    )末尾添加
    或die(mysql\u error())
    )时间根本没有插入。我也签入了数据库。消息是什么?我在添加或死亡时出现以下错误(mysql_错误):'-27:-5:-25列计数与第1行的值计数不匹配'Simplify。。你不需要在无线电值中输入日期。只需发送一个任意值1-就可以知道它已被单击。此外,您不需要太多地处理日期,只需以数据库所需的格式生成它-$checkin=date(“Y-m-d”);