我到处寻找,找到了很多答案,但没有一个是针对我的情况的。我在一个非常简单的时间表(PHP/MYSQL)工作,只有几个员工。只有几个字段需要输入"Location"Description"Timein"Timeout"。我需要做的是计算时间和超时时间,找出需要多少小时。出于显示目的,我使用下拉列表来显示timein/timeout,这些值是由strtotime()函数创建的,每半小时递增一次。
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吗?)然而,我只是需要一种方法来抽出时间(上午9点)超时(下午2点),从中得到5个小时。
mysql_query("INSERT INTO sheet(employee, date, location, description, timein, timeout)
VALUES('$employee', NOW(), '$location', '$description', '$timein', '$timeout')")or die(mysql_error());
- 员工varchar(30) <
- 日期日期/gh><
- 位置文本/gh>次世代都会面临着这样
- 时刻
- 超时时间
- timespent int (10)
- totalhours int (10)
您缺少</option>
并且您的选项没有值,只有一个标签。
<select>
应该是这样的:
<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>
您的日期列期望类似'0000-00-00'
的东西,但mysql函数now()
返回时间戳,如'0000-00-00 00:00:00'
尝试CURDATE()
代替。
你的日期格式也不正确mysql期望的时间。'00:00:00'
在为每个选项创建值时,您应该尝试date("H:i:s", $i)
。您仍然可以使用文本部分的日期格式。(用户将看到的文本)