2014-09-30 585 views
0

如果有人能幫助我,這將是偉大的確定它是簡單的東西,但對於我的生活我無法找到如何做到這一點我有兩個時間戳,我想將它們加在一起( $ timestamp1 + $ timestamp2)我有第一部分想通了,但我不能得到我想要這樣的結果到目前爲止,我有這個兩個時間戳總結在一起

$flight_time = strtotime($flight_time_1)+strtotime($flight_time_2)+strtotime($flight_time_3)+strtotime($flight_time_4)+strtotime($flight_time_5)+strtotime($flight_time_6)+strtotime($flight_time_7)+strtotime($flight_time_8)+strtotime($flight_time_9)+strtotime($flight_time_10); 

$flight_time = date("H:i:s", $flight_time); 

,並且給了我時間16時20分○○秒這是完美 第二代碼我有這

$sqlcow = "SELECT system_flight FROM uav_checks WHERE uav_id = '$registration'"; 
$result1cow=mysql_query($sqlcow); 

while ($arow = mysql_fetch_array($result1cow)){ 

$system_flight2 = $arow['system_flight']; 

} 

並與此代碼我得到th是28:07:00這是完美的

我需要的是這16時20分00秒+ 28:07:00

然而,當我試圖給他們以各種方式,我知道可能加在一起,它不會工作所以我難倒請誰能幫助我

謝謝

+1

想要的結果是什麼? – 2014-09-30 14:22:14

+0

您可能正在使用**絕對時間**,這意味着時間戳具有**年,月和日**信息。這就是爲什麼它可能不起作用。 – tfrascaroli 2014-09-30 14:25:37

+0

[這個問題](http://stackoverflow.com/questions/11556731/how-we-can-add-two-date-intervals-in-php)(和接受的答案)可能會有所幫助。 – 2014-09-30 14:28:28

回答

2

你在它不打算使用的方式濫用日期/的strtotime系統。例如

strtotime('16:20:00') -> 1412115600 
date('r', 1412115600) -> Tue, 30 Sep 2014 16:20:20 

請注意PHP假設你的「4:20 pm」實際上是「今天」的一部分。這不是「16小時* 3600秒/小時+ 20分鐘* 60秒/分鐘」 - > 58800秒。

strtotime('16:20:00') + strtotime('01:02:30') 
1412115600 + 1412060523 
2824176123 
date('r', 2824176123) -> Sun, 29 Jun 2059 23:22:03 

考慮一下,如果你的時間字符串加起來超過24小時,如發生了什麼現在

16:20:00 + 7:40:01 -> 23:60:01 -> 1day 00:00:01 

H:i:s值將顯示00:00:01的時刻,這是一個非常非常短的飛行。

您需要手動將您的時間值轉換爲秒,例如,

(16 * 3600) + (20 * 60) + (0) -> 57600 + 1200 -> 58800 
(01 * 3600) + (02 * 60) + (30) -> 3600 + 120 + 30 -> 3750 

58800 + 3750 -> 62550 

,然後回到H:M:S格式:

17:22:30 
+0

嗨,我剛剛試過你的方式和它工程,但我已經嘗試了很多不同的,他們的工作,以及我遇到的問題是完全一樣的,你說我需要我的時間去更高,然後24小時,你可以請幫我我已轉換爲秒,然後將它們添加在一起,然後將其轉換回工作,但是我得到的結果是沿着00:00:01的行,而不是更高的24 – user3744228 2014-10-21 09:52:48

0

好總結的時間戳在SQL查詢只因爲它會更加優化,轉換日期時間到UNIX再總結所有的UNIX時間戳並在PHP轉換爲日期時間。請參閱下面的代碼。

$sqlcow = "SELECT SUM(UNIX_TIMESTAMP(system_flight)) 
FROM uav_checks WHERE uav_id = '$registration'"; 
$result1cow=mysql_query($sqlcow); 


while ($arow = mysql_fetch_array($result1cow)){ 

$system_flight2 = $arow['system_flight']; 

} 

echo gmdate("H:i:s\Z", $system_flight2); 
+0

@ user3744228這是否有幫助? – 2014-09-30 17:57:20