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