2012-06-07 44 views
0

需要您的幫助。使用條件計算加班時間總計

如何使用條件計算總加班工時? 實施例:

使用輸入類型,

OT From <input type="text" name="ot_from"> 
OT To <input type="text" name="ot_to"> 
Total Hours <input type="text" name="total_hours"> 

工作日:08.00 - 17.00(正常工作日) 如果我工作,直到19.00,應計算出予2小時做超時。

在我的規則中,從18.00 - 18.30不計算加班,因爲這是休息時間。 所以應該是我的總加班時間是1.5不是2小時。

有人可以給我一個解決方案嗎? 感謝您的幫助。

謝謝。 大衛

+0

我不知道,學習編程可能是一個開始?對不起,我很粗魯,但這是編程的基礎知識(條件,計算)。 –

+0

這就是爲什麼我問這個問題先生,如果我知道我可能不會再問。如果你知道解決方案,讓我知道我該如何解決這個問題。謝謝 –

回答

1

這裏是你應該做的:

1斯普利特小時和分鐘到分鐘的總量。

str = "1:23" or other time value

time = parseInt(str.split(":")[0], 10)*60+parseInt(str.split(":")[1], 10)

2減去從開始時間結束時間 - 這會給你最後一次。

3從幾分鐘到幾小時轉換做到以下幾點:

minutes = time%60

hours = parseInt(time/60, 10)

你實際上並不需要的PHP - 這都可以使用JavaScript實現,只要你是不想將數據存儲在數據庫或任何其他數據中。

+0

你應該學習'split'方法如何處理字符串:) –

+0

更改爲使用'split()'。 :d –

0

如果您想確保用戶的輸入始終相等,您應該用選擇框替換輸入字段。然後,您可以爲一個小時和一個分鐘選擇一個選擇框。

要計算工作時間,你可以做一個基本的計算是這樣的:

<?php 
// Vars of the POST form 
$otfrom_hours = $_POST['ot_from_hours']; 
$otfrom_minutes = $_POST['ot_from_minutes']; 
$otto_hours  = $_POST['ot_to_hours']; 
$otto_minutes = $_POST['ot_to_minutes']; 

// Make a full string for strtotime 
$otfrom_string = $otfrom_hours.":".$otfrom_minutes; 
$otto_string = $otto_hours.":".$otto_minutes; 

// Basic calculation 
$start   = strtotime($otfrom_string); 
$end   = strtotime($otto_string); 
$elapsed  = $end - $start; 
echo date("H:i", $elapsed); 
?> 

希望這將是有用的!