wearebraid/carbon-availability

使用 Carbon 确定日历可用性的最简单方法。

1.0.1 2019-12-10 02:10 UTC

This package is auto-updated.

Last update: 2024-09-10 12:57:27 UTC


README

Build Status

给定一些可用时间和一些不可用时间,你如何确定可以安排特定持续时间的事件的时间段(例如,像calendly这样的东西)?嗯——这出奇地困难——除非你使用这个。

use Braid\CarbonAvailability;

/**
 * [==========]                            | Available time blocks
 *               [========]                |
 *                        [==========]     | ______________________
 *                    [xxxxxxx]            | Booked time blocks
 *                                [x]      | ______________________
 * [==========] [====]         [=]         | Merged availability
 * |  |  |  |   |  |           |           | Available sessions
 */

$availability = [
    ['2019-01-01 09:00:00', '2019-01-01 10:00:00'],
    ['2019-01-01 10:15:00', '2019-01-01 11:00:00'],
    ['2019-01-01 11:00:00', '2019-01-01 12:00:00']
];

$booked = [
    ['2019-01-01 10:45:00', '2019-01-01 11:30:00'],
    ['2019-01-01 11:50:00', '2019-01-01 11:55:00']
];

$availability = new CarbonAvailability($availability, $booked);
$startTimes = $availability->session('15 minutes');
/* Returns the following Carbon\Carbon date times (2019-01-01):
09:00
09:15
09:30
09:45
10:15
10:30
11:30
*/

安装

composer require wearebraid/carbon-availability