PHP Time Collision é uma biblioteca para lidar com colisão temporal, podendo identificar horários livres em um período especificado. Útil especialmente para gerenciamento de horários em agendas, onde é preciso encaixar um determinado tempo em um horário disponível.
Sinta-se à vontade para conferir o changelog, os releases e a licença.
Existem várias formas de trabalhar com colisões de tempo dentro da biblioteca e podem ser conferidas na documentação. Um exemplo simples é explicado a seguir:
// Gera um range de 24 horas no dia 10/01/2020
$object = new Collision('2020-01-10');
// Libera dois períodos dentro do range
$object->fromDefaults()->enablePeriod('13:00', '14:00');
$object->fromDefaults()->enablePeriod('15:00', '18:00');
// Obtém os períodos onde 01h30m pode se encaixar
$fittings = $object->fromFillings()->getFittingsFor(90);
O resultado será um array contendo todos os períodos disponíveis onde 1h30m podem ser alocados. No exemplo acima, a variável "$fittings" terá o seguinte conteúdo:
[
0 => Interval("2020-01-10 15:00:00","2020-01-10 18:00:00")
]
Ou seja, apenas o período das 15:00 às 18:00 podem alocar 01h30m. O valor, constituído de um array com dois elementos, corresponde ao início e ao fim dos períodos, ou seja, das 15:00 às 18:00.
Para mais informações, consulte a Documentação da Biblioteca para descobrir outras funcionalidades.
- Feito para o PHP 7.4 ou superior;
- Codificado com boas práticas e máxima qualidade;
- Bem documentado e amigável para IDEs;
- Feito para TDD (Test Driven Development);
- Feito com ❤️ & ☕.