2015-06-21 67 views
0
Sunrise: 6:50am 
Sunset: 4:45pm 

如何計算這兩次的中點?通過手動計算,我知道它的大約11:47am,但不知道如何以編程方式進行。計算兩次中點

+5

將它們轉換爲時間戳,取平均值,轉換回來。 –

+0

@OliverCharlesworth'日期( 'H:I:S',((的strtotime($日出)+的strtotime($日出))/ 2))'?它返回'06:50:00' – 3zzy

+0

@ 3zzy https://eval.in/385122你設置的值是什麼? – splash58

回答

2

這實際上不是一個PHP問題,實際上你不需要任何日期函數。只需使用一些數學

1h = 60min 
am = 0min 
pm = 12*60min 

所以

Sunrise = 6*60min + 50min = (360 + 50)min = 410min 
Sunset = (4+12)*60min + 45min = (960 + 45)min = 1005min 

中點爲(Sunrise+Sunset)/2 = 1415/2 min = 707.5min

(707/60) = 11h (integer division!) 
707-660 = 47min 

你去:11:47(30秒))

只要你不需要幾天,幾個月和幾年,純數學就會變得更加快樂matics。

0

可以使用爆炸方法

$日出= 6:50

$日落= 4:45

$時間1 =爆炸( 「:」,$日出);

$ time2 = explode(「:」,$ sunset);

$ the_hours = $ time1 [0] - $ time2 [0];

$ the_min = $ time [1] - $ time2 [1];

goodluck。

+0

'$ the_hours =($ time1 [0] + $ time2 [0])/ 2; $ the_min =($ TIME1 [1] + $ TIME2 [1])/ 2;'。你忘了'am'和'pm',你鬆了精度。 – ikrabbe