2012-03-16 85 views
3

我有兩次像10:00 am7:00 pm如何從兩次計算兩小時?

而從這個我想獲得總小時數。從那時起,我必須得到9個小時。

我該怎麼做?

我與:爆炸,但隨後它從10減去7,並返回結果3這是不正確,因爲它應該返回9

回答

4
<?php echo strtotime('7:00 pm')-strtotime('10:00 am');?> 

獲取時間戳差異

編輯

回波(的strtotime('07:00 ') - 的strtotime('10:00'))/(60 * 60); //顯示9

60 * 60 = 1小時

編輯

$fromTime = '3:00 pm'; 
$toTime = '12:00 am'; 
$timediff = (strtotime($toTime)-strtotime($fromTime))/(60*60); 
echo $timediff >= 0 ? $timediff : (24 + $timediff); 
+0

但它返回它的時間戳。我想要9號。 – Ahmad 2012-03-16 06:27:46

+0

@Ahmad我已編輯答案 – 2012-03-16 06:36:01

+0

但下午3點--12點返回15.這是不正確的。 – Ahmad 2012-03-16 06:47:46

1

您可以使用PHP的strtotime功能將其轉換爲UNIX時間,所以你可以做進一步的計算用它。

1

我認爲你可以得到的ampm信息保持!有了這些信息,你可以使if()更正確!

If()這是PM,增加12小時,如果不是下午,沒有做任何事情。

與您對比的時間做到這一點:

if (pm==1){ 
time+=12; 
} 

所以10:00 am = false這將是10:00 和7:00 pm = true這將是19:00

19:00 - 10:00 = 9 hours = win

1

我覺得這會幫助你更有效地

<?php echo date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?> 
+0

當我嘗試從下午3:00到12:00計算時,它也返回15 – Ahmad 2012-03-16 07:22:11

+0

試試這個...... <?php echo date('h:i:s a',strtotime(' 3:00 pm') - strtotime('12:00 am'));?> – NarayaN 2012-03-16 07:29:18

+0

返回下午3:00:00 – Ahmad 2012-03-16 07:34:32

0

使用日期時間界面,其簡單的

$day1= new DateTime("today 01:33:26am"); 
    $dayd2= new DateTime("today 10:40:36pm");   //Output: Hours: 21 
    $interval= $day1->diff($day2); 
    $h = ($interval->days * 24) + $interval->h; 
    echo "Hours: ".$h 

這裏 H =小時數。 $ interval->天指多少天差得到,如果我們得到一(1)天那麼它加1 * 24(小時)= 24 + 21 46例小時的,但這裏DAY1和DAY2包含今天這樣,那意味着0 * 24 = 0 + 21 = 21

最後輸出:21小時的