我試着去解決這個問題,因爲兩天沒有成功... 首先我所有代碼:PHP //轉換/計算日期
PHP的版本:5.4
SCRIPT1:
query = "SELECT start, end FROM timetable WHERE ........";
$result = mysql_query($query, $db) or die(mysql_error());
$sqlarr = mysql_fetch_array($result, MYSQL_ASSOC);
$times = array($sqlarr['start'], $sqlarr['end']);
$calced = strtotime($times[1]) - strtotime($times[0]);
$total = date("H:i:s", $calced-3600); //<-- -3600 Fixed it
echo "<br>Total: ".$total;
開始和結束時間格式爲00:00:00。每次這個腳本計算它附加1小時的結果。所以如果我要5分鐘的結果,我會得到01:00:05。 爲什麼?
這一個更奇怪。 SCRIPT2:
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo " | ".$row['total']."<br>";
$add += strtotime($row['total']);}
echo $add;
第一個腳本計算從開始到結束的總時間。第二個應該得到數據庫的總時間,並計算所有條目的總和。對於每個條目,第二個腳本減去2個小時。
示例: 數據庫=>開始=十二點32分00秒結束= 12時32分十五秒
SCRIPT1結果1 =一點00分15秒(其中這種額外小時來自?)固定
每個Result1都存儲在同一個表(db)中。 Script2正在加載所有這些行並通過while循環來處理它們。
根據腳本有多少條目減去了服務小時數。
0只=>總計:00:00:00
1項=>總計:23:00:XX
2個條目=>總計:20:00:XX
3條目=>總計:18:00 :xx
4條目=>總計:16:00:xx
因此,有2個條目,它繼續從每個總計算中減去2個小時,這是不正確的,很明顯。
感謝你們。使用DateTime使這個簡單和無bug!
所以我沒有真正明白,* 00:00:05 + 00:00:05 = 22:00:10 *,在這個例子中,** start **和** end **是什麼?所以start = 00:00:10和end = 22:00:10? – Artemkller545
生病編輯我的第一篇文章,讓它更清楚一點。 – C4u