marcgoertz / flight-duration
Calculate actual flight durations between airports using timezone data from OpenFlights.org.
1.0.0
2025-05-04 11:33 UTC
Requires
- php: >=8.0
- slim/psr7: ^1.7
- slim/slim: ^4.14
- zircote/swagger-php: ^5.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.75
- overtrue/phplint: ^9.6
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^2.0
- squizlabs/php_codesniffer: ^3.12
This package is auto-updated.
Last update: 2025-05-04 12:15:34 UTC
README
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
-
Clone the repository:
git clone https://github.com/mrcgrtz/flight-duration.git cd flight-duration
-
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 timezoneto
: ISO 8601 formatted arrival time with timezoneduration
: 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