计算两次中点

问题描述:

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

这实际上不是一个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。

可以使用爆炸方法

$日出= 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