PHP/MYSQL时间表计算进出的小时数
我到处寻找,找到了很多答案,但都没有找到适合我情况的答案。 我正在为几个员工编写一个非常简单的时间表(PHP/MYSQL)。只有少数字段可在“超时”中输入“位置”“说明”“时间”。我需要做的是计算timein和timeout,并找出有多少小时。出于显示目的,我使用了timein/timeout的下拉列表,它的值是通过strotime()函数每半小时递增一次创建的PHP/MYSQL时间表计算进出的小时数,php,mysql,Php,Mysql,我到处寻找,找到了很多答案,但都没有找到适合我情况的答案。 我正在为几个员工编写一个非常简单的时间表(PHP/MYSQL)。只有少数字段可在“超时”中输入“位置”“说明”“时间”。我需要做的是计算timein和timeout,并找出有多少小时。出于显示目的,我使用了timein/timeout的下拉列表,它的值是通过strotime()函数每半小时递增一次创建的 echo '<select name="timein">'; $start=strtotime('7:00am'); $e
echo '<select name="timein">';
$start=strtotime('7:00am');
$end=strtotime('8:00pm');
for ($i=$start;$i<=$end;$i+=1800)
{echo '<option value="'.date('g:i a',$i).'">'.date('g:i a',$i).'</option>';}
echo '</select>';
- 雇员varchar(30)
- 日期
- 位置文本
- 时不时
- 超时时间
- 时间开销整数(10)
- 总小时数(10)
- 您缺少
,您的选项没有值,只有一个标签
应如下所示:
<select name="timein">
<option value="0">8:00am</option>
<option value="1">9:00am</option>
<option value="2">10:00am</option>
<option value="3">11:00am</option>
<!-- etc -->
</select>
上午八点
上午9点
上午10:00
上午11:00
日期列需要类似于'0000-00-00'
的内容,但mysql函数now()
返回类似于'0000-00-00:00:00'
的时间戳
此外,您的日期格式与mysql对时间的期望不符<代码>'00:00:00'
在为每个选项创建值时,您应该尝试
date(“H:i:s”,$i)
。您仍然可以使用文本部分的日期格式。(用户将看到的文本。)我认为时间戳的格式不正确,这取决于您创建列的方式。你能给我们看一下查询和表结构吗。同样缺少value=“”谢谢。我发现weither使用数据库显示的NOW()或CURDATE(),不管是哪一天4月9日凌晨12:00:00,都是无意义的。时间确实有帮助,现在我的数据库显示的是下午15:00:00而不是3:00,但我仍然需要计算工作时间。只需减去$timeout-$timein=timeworked(以秒为单位)只需使用date函数对其进行格式化,以所需的格式显示即可。
<select name="timein">
<option value="0">8:00am</option>
<option value="1">9:00am</option>
<option value="2">10:00am</option>
<option value="3">11:00am</option>
<!-- etc -->
</select>