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

Как рассчитать среднюю точку этих двух раз? Вычисляя вручную, я знаю его примерно 11:47am, но не знаю, как это сделать программно.Расчетная средняя точка двух раз

+5

Преобразуйте их в отметки времени, возьмите среднее значение, конвертируйте обратно. –

+0

@OliverCharlesworth 'date ('H: i: s', ((strtotime ($ sunrise) + strtotime ($ sunrise))/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 секунд;))

До тех пор, пока вам не нужны дни, месяцы и годы, вы получите гораздо больше удовольствия от чистого мата машины для отходов.

0

вы можете использовать метод взрывается

$ восхода = 6:50

$ заката = 4:45

$ TIME1 = взорваться (":", $ восхода солнца);

$ 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