marcgoertz/flight-duration

Calculate actual flight durations between airports using timezone data from OpenFlights.org.

1.0.0 2025-05-04 11:33 UTC

This package is auto-updated.

Last update: 2025-05-04 12:15:34 UTC


README

PHP Composer MIT license

Calculate actual flight durations between airports using timezone data from OpenFlights.org.

Features

  • Calculate flight durations considering different timezones
  • Support for over 12,000 airports worldwide
  • Simple REST API with JSON responses
  • OpenAPI documentation

Installation

Using Composer

composer require marcgoertz/flight-duration

Manual Installation

  1. Clone the repository:

    git clone https://github.com/mrcgrtz/flight-duration.git
    cd flight-duration
  2. Install dependencies:

    composer install

Usage

Starting the Server

# Using PHP's built-in server
composer start

# Using ddev
ddev start

API Parameters

Parameter Description Format Example
from Departure datetime YYYY-MM-DDTHH:MM 2023-05-01T10:30
to Arrival datetime YYYY-MM-DDTHH:MM 2023-05-01T14:45
departureAirport IATA code of departure airport 3 uppercase letters FRA
destinationAirport IATA code of destination airport 3 uppercase letters JFK

Example Requests

Using curl:

curl "http://localhost:8000/?from=2023-05-01T10:30&to=2023-05-01T14:45&departureAirport=FRA&destinationAirport=JFK"

Using Curlie:

curlie http://localhost:8000/ from==2023-05-01T10:30 to==2023-05-01T14:45 departureAirport==FRA destinationAirport==JFK

Example Response

{
  "from": "2023-05-01T10:30+02:00",
  "to": "2023-05-01T14:45-04:00",
  "duration": "P0DT8H15M"
}

Library Usage

You can also use FlightDuration as a library in your PHP project:

use Marcgoertz\FlightDuration;

$flightDuration = new FlightDuration();
$duration = $flightDuration->getDuration(
    '2023-05-01T10:30',      // Departure time
    '2023-05-01T14:45',      // Arrival time
    'FRA',                   // Departure airport
    'JFK'                    // Destination airport
);

print_r($duration);

Response Format

The API returns a JSON object with three properties:

  • from: ISO 8601 formatted departure time with timezone
  • to: ISO 8601 formatted arrival time with timezone
  • duration: ISO 8601 duration format (PnYnMnDTnHnMnS)

Development

Requirements

  • PHP 8.0 or higher
  • Composer

Credits

The airport data is provided by OpenFlights.org.

License

MIT © Marc Görtz