|                                                        |  | <?php
function timezone_for_location($lat, $lng) {
  $tz = \p3k\Timezone::timezone_for_location($lat, $lng);  $timezone = false;  if($tz) {    $timezone = new p3k\timezone\Result($tz);  }
  if($timezone) {    return [      'timezone' => $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);  }});
 |