2013-04-12 78 views
0

我創建了一個HTML表格,以兩種不同的方式顯示員工時間分配。第一種方法是ajax更新隊列,它顯示當前員工在哪裏完成。PHP比較工作時間

第二種類型是用戶可以輸入過去「分配」的形式。現在,因爲我的業務是24/7,我決定向所有倍日期時間存儲在MySQL,所以我能得到的區別:

​​和2013-04-12 01:52:29

這裏是正在填寫表格:

<form action="mafs.php" method="post" id="form1" name="form1" class="">  

        <table id="tbl_past_allocation"> 
         <tr> 
         <td class="txt-right" style="font-size:11px;">Employee Name</td> 
         <td ><input placeholder=" John Doe" style="width:100px; border-radius:10px;" type="text" name="peename" id="peename" /></td> 
         </tr> 
         <tr> 
         <td class="txt-right" style="font-size:11px;">Home Department</td> 
         <td>   <select style="width:140px; border-radius:10px;" name="phomedept"> 

       <option value="select">Select Department</option></center> 
       <option value="ADC/NFC Shipping Department">ADC/NFC Shipping Department</option> 
       <option value="Administration">Administration</option> 
       <option value="Receiving Department">Receiving Department</option> 
       <option value="Cable">Cable Department</option> 
       <option value="Department">CPM Department</option> 
       <option value="Dispatch Clerk">Dispatch Clerk</option> 
       </select></td> 
         </tr> 

         <tr> 
         <td class="txt-right" style="font-size:11px;">Sent to Department</td> 
         <td>   <select style="width:140px; border-radius:10px;" name="psentdept"> 

       <option value="select">Select Department</option></center> 
       <option value="ADC/NFC Shipping Department">ADC/NFC Shipping Department</option> 
       <option value="Administration">Administration</option> 
       <option value="BP Receiving Department">BP Receiving Department</option> 
       <option value="Cable Department">Cable Department</option> 
       <option value="CPM Department">CPM Department</option> 
       <option value="Dispatch Clerk">Dispatch Clerk</option> 
       <option value="Inventory Control Department">Inventory Control Department</option> 
       <option value="IRM Shipping Department">IRM Shipping Department</option> 
       <option value="Kitting Department">Kitting Department</option> 
       <option value="Lead">Lead</option> 
       <option value="LSC Receiving Department">LSC Receiving Department</option> 
       <option value="LSC Shipping Department">LSC Shipping Department</option> 
       <option value="NAR E&O Department">NAR E & O Department</option> 
       <option value="Non-Conformance Department">Non-Conformance Department</option> 
       <option value="Performance Department">Performance Department</option> 
       <option value="Quality Auditors">Quality Auditors</option> 
       <option value="Quality Department">Quality Department</option> 
       <option value="Returns Department">Returns Department</option> 
       <option value="Software Department">Software Department</option> 
       <option value="Special Ops Team">Special Ops Team</option> 
       <option value="Supervisors">Supervisors</option> 
       <option value="Training/Meetings/Projects">Training/Meetings/Projects</option> 

       </select></td> 
         </tr> 

         <tr> 
         <td class="txt-right" style="font-size:11px;">Time Sent</td> 
        <td ><input placeholder=" mm-dd-yy hh:mm:ss" style="width:140px; border-radius:10px;" type="text" name="ptimesent" id="ptimesent" /></td> 
         </tr> 

         <tr> 
         <td class="txt-right" style="font-size:11px;">Time Returned</td> 
      <td ><input placeholder=" mm-dd-yy hh:mm:ss" style="width:140px; border-radius:10px;" type="text" name="ptimereturned" id="ptimereturn" /></td> 
         </tr> 


        </table> 
        <!--tbl_equipment_details closed--> 
          <div> 
     <input class="button" value="Submit Record" name="pastadd" type="submit" style="width:300px; cursor:pointer; margin-top:5px;"> 
          </div> 
          </form> 

我在這方面遇到了一些不同的問題。

  1. 首先,我很好奇什麼樣的格式最適合存儲這種類型的時間。

  2. 用戶在表單中輸入此信息時最簡單的方法是什麼? 4個獨立的輸入,然後將它們連接在一起?或2,只需要他們以指定的格式輸入?

+0

您的應用程序是否需要關注不同的時區? – webbiedave

+0

使用日期選擇器和時間選擇器,以便您的用戶在輸入信息時不會遇到太多麻煩。 jQuery UI提供了日期選擇器,至於時間選擇器,我確定互聯網上有很多東西。 – viclim

+0

時區不是一個因素。 –

回答

0

我認爲單獨的輸入是最容易用戶和最不容易出錯的,因爲它們都是選擇框。然後將這些值連接在一起,對於我個人來說,將它們轉換爲時間戳。時間戳也是24/7兼容的。 :)

我總是使用unix時間戳來保存我的gmt日期。然後比較它們是簡單的數學。

<?php 

// 
// Some comparison stuff 
// 

// 1 day = 86400 seconds 
// mktime returns a unix timestamp. 
$date1 = mktime(0, 0, 0, 1, 1, 2013); // Jan. 1st, 2013 
$date2 = mktime(0, 0, 0, 1, 15, 2013); // Jan. 15th, 2013 

// Get the difference 
$diff = ($date2/86400) - ($date1/86400); // 14 

echo $diff; 

// 
// Some conversion stuff 
// 
// Use mktime([$hour, $min, $sec, $mon, $day, $year]) if you have 
// a specific date you want converted into a timestamp, else use 
// time(), which is the current timestamp. 
// 
// Convert to human readable format 
// 
$datetime = date("H:i:sa - M jS, Y", $timestamp); // $timestamp optional 

echo $datetime; // e.g. 4:23:46pm - Jan 1st, 2013 

?> 

P.S.不要將我使用「unix」時間戳與mysql數據類型TIMESTAMP混淆。 unix時間戳是自1970年1月1日以來經過的秒數(作爲整數)(?我相信?)。

// MySQL TIMESTAMP數據類型。

The TIMESTAMP data type is used for values that contain both date and time parts. 
TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. 

請不要猶豫,糾正我,如果我有任何不正確的假設。 謝謝!

+0

我會稍微介紹一下。感謝您的答覆。 –

+0

這還允許您設置將時間戳記保存爲整數類型的字段,默認的「int」使用一半的存儲大小,4個字節與datetime中的8個字節相比。 –

+0

雖然TIMESTAMP數據類型也只有4個字節,但它確實歸結爲程序員偏好/比較難度。 –