0

我到处搜索,找到了很多答案,但没有什么适合我的情况。我正在为几个员工制作一个非常简单的时间表(PHP/MYSQL)。只有几个字段可以输入“位置”“描述”“时间”“超时”。我需要做的是花时间和超时,找出多少小时。出于显示目的,我使用了一个下拉列表来显示时间/超时,这些值是从 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>';

当我尝试将它们插入我的数据库时,我得到一个不正确的时间值错误(我应该将 timein 作为 varchar 吗?)但我只需要一种方法来获取 timein(上午 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)
  • 日期日期
  • 位置文字
  • 及时
  • 超时时间
  • 时间 int(10)
  • 总小时数(10)
4

2 回答 2

0

您的日期列期待类似的东西,'0000-00-00' 但 mysql 函数now()返回 Timestamp,如'0000-00-00 00:00:00'tryCURDATE()而不是。

此外,您的日期格式对于 mysql 对时间的期望也不正确。'00:00:00' 您应该date("H:i:s", $i)在为每个选项创建值时尝试。您仍然可以使用文本部分的日期格式。(用户将看到的文本。)

于 2013-04-09T17:56:15.983 回答
0

你失踪了</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>
于 2013-04-09T16:15:56.303 回答