Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MYSQL时间表计算进出的小时数_Php_Mysql - Fatal编程技术网

PHP/MYSQL时间表计算进出的小时数

PHP/MYSQL时间表计算进出的小时数,php,mysql,Php,Mysql,我到处寻找,找到了很多答案,但都没有找到适合我情况的答案。 我正在为几个员工编写一个非常简单的时间表(PHP/MYSQL)。只有少数字段可在“超时”中输入“位置”“说明”“时间”。我需要做的是计算timein和timeout,并找出有多少小时。出于显示目的,我使用了timein/timeout的下拉列表,它的值是通过strotime()函数每半小时递增一次创建的 echo '<select name="timein">'; $start=strtotime('7:00am'); $e

我到处寻找,找到了很多答案,但都没有找到适合我情况的答案。 我正在为几个员工编写一个非常简单的时间表(PHP/MYSQL)。只有少数字段可在“超时”中输入“位置”“说明”“时间”。我需要做的是计算timein和timeout,并找出有多少小时。出于显示目的,我使用了timein/timeout的下拉列表,它的值是通过strotime()函数每半小时递增一次创建的

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>