$timezone->name, 'offset' => $timezone->offset, 'seconds' => $timezone->seconds, 'localtime' => $timezone->localtime ]; } else { return [ 'error' => 'not_found', 'error_description' => 'No timezone was found for the requested location' ]; } } $app->get('/api/timezone', function() use($app) { $params = $app->request()->params(); if(k($params, 'latitude') !== null && k($params, 'longitude') !== null) { $lat = (float)$params['latitude']; $lng = (float)$params['longitude']; $result = timezone_for_location($lat, $lng); json_response($app, $result); } elseif(k($params, 'airport')) { $code = $params['airport']; $airport = \p3k\Airports::from_code($code); if($airport) { $result = timezone_for_location($airport['latitude'], $airport['longitude']); if(!isset($result['error'])) { $result['airport'] = $airport; } json_response($app, $result); } else { json_response($app, [ 'error' => 'not_found', 'error_description' => 'The airport code was not found' ]); } } else { json_response($app, [ 'error' => 'invalid_request', 'error_description' => 'Request was missing parameters' ], 400); } });