' . __("Satellite") . ' ' . __("AOS Time") . ' ' . __("Duration") . ' ' . __("AOS Az") . ' ' . __("AOS El") . ' ' . __("Max El") . ' ' . __("LOS Time") . ' ' . __("LOS Az") . ' ' . __("LOS El") . ' '; foreach ($filtered as $pass) { echo ''; echo '' . $pass->satname . ''; echo '' . Predict_Time::daynum2readable($pass->visible_aos, $zone, $format) . ''; echo '' . returntimediff(Predict_Time::daynum2readable($pass->visible_aos, $zone, $format), Predict_Time::daynum2readable($pass->visible_los, $zone, $format), $format) . ''; echo '' . round($pass->visible_aos_az) . ' (' . azDegreesToDirection($pass->visible_aos_az) . ')'; echo '' . round($pass->visible_aos_el) . ''; echo '' . round($pass->max_el) . ''; echo '' . Predict_Time::daynum2readable($pass->visible_los, $zone, $format) . ''; echo '' . round($pass->visible_los_az) . ' (' . azDegreesToDirection($pass->visible_los_az) . ')'; echo '' . round($pass->visible_los_el) . ''; echo ''; } echo ''; } function returntimediff($start, $end, $format) { $datetime1 = DateTime::createFromFormat($format, $end); $datetime2 = DateTime::createFromFormat($format, $start); $interval = $datetime1->diff($datetime2); $minutesDifference = ($interval->days * 24 * 60) + ($interval->h * 60) + $interval->i + ($interval->s / 60); return round($minutesDifference) . ' min'; } function azDegreesToDirection($az = 0) { $i = floor($az / 22.5); $m = (22.5 * (2 * $i + 1)) / 2; $i = ($az >= $m) ? $i + 1 : $i; return trim(substr('N NNENE ENEE ESESE SSES SSWSW WSWW WNWNW NNWN ', $i * 3, 3)); }