使用php插入用户选择的时间范围的方法


Way to insert user selected time range with php

试图整理我对如何将多个耗时的条目保存到数据库的想法。

因此,我对如何处理这一问题的想法如下:

创建2个表单字段,

<select value="<?php echo $beg_time; ?>" name="beginningtime" id="beginningtime">
     <option value = "8">8am</option>
     <option value = "etcetc">etcetc</option>
     <option value = "6">6pm</option>
</select>
<select value="<?php echo $end_time; ?>" name="endtime" id="endtime">
     <option value = "8">8am</option>
     <option value = "etcetc">etcetc</option>
     <option value = "6">6pm</option>
</select>
// Third input to have time worked that I want to save
<?php $end_time - $start_time = $hours_worked;?>// replace with jquery to update on client side
<input type="hidden" value="jQueryhours_worked">
//Server Code :
//somehow concatenate $hours_worked, so that saved value may look like this :
//2,3,5,1

有没有更简单的方法可以做到这一点,我是不是在重新发明轮子?

您可能希望使用24小时基数作为一个值。这是因为8-8 = 0,但20-8 = 12。(20:00是晚上8点),这意味着他们已经工作了12个小时。

此外,您应该确保没有使用任何双id属性。

您的$hours_worked隐藏字段不起作用,因为php不起作用。

你需要单独存储每天的工作时间。

从我的角度来看,您的代码无论如何都无法工作。我可以向你指出一些小的解决方案,但那样你就会遇到下一个问题。我觉得你应该从研究如何保存这个函数的结果开始。您可能还想使用javascript来使生活更轻松。

一旦你完成了这项工作,请在评论中告诉我,我会用实际的修复程序更新我的答案(如果到那时实际的修复是可能的)

看看这个问题,了解如何创建实际存储多个表单条目的能力:将表单数据存储为会话变量

一旦完成,我假设您将使用$_SESSION来存储每天的这些小时数。

这时你可以这样说:

//Checks if the $_SESSION["workedhours"] already has anything stored
//If not, no , beforehand.
if(!isset($_SESSION["workedhours"]){
//this creates the initial session.
  $_SESSION["workedhours"] = $hours_worked;         } 
}
else{
     //This adds to it
     $_SESSION["workedhours"] .= ",$hours_worked";
}

在这种情况下,您还需要运行start_session()。这发生在文件的第一行(在<?php标签之间,

  <?php
    //Checks if a session already exists, if not, start one      
    if (session_status() == PHP_SESSION_NONE) {
      session_start();
    }
  ?>

我还建议你阅读这篇文章,因为知道如何从你的表单中获得插入的数据很重要:

http://www.w3schools.com/php/php_forms.asp

编辑说明:$_SESSION是一个临时的东西。它只在浏览器打开时保存数据。如果你想永久存储这些数据,你必须使用数据库。如果你使用数据库,我的答案的一切都会改变,但你现在似乎没有使用数据库。

为什么不把每个动作的开始时间和结束时间都保存到db中呢?您可以直接在SQL层上进行各种计算操作,并且手头总是有谨慎的时间值,以便进行进一步的操作