An open API service indexing awesome lists of open source software.

https://github.com/midnite81/timekeeper

A series of scopes for Laravel Models to do with Time Management.
https://github.com/midnite81/timekeeper

Last synced: 2 months ago
JSON representation

A series of scopes for Laravel Models to do with Time Management.

Awesome Lists containing this project

README

        

# TimeKeeper
[![Latest Stable Version](https://poser.pugx.org/midnite81/timekeeper/version)](https://packagist.org/packages/midnite81/timekeeper) [![Total Downloads](https://poser.pugx.org/midnite81/timekeeper/downloads)](https://packagist.org/packages/midnite81/timekeeper) [![Latest Unstable Version](https://poser.pugx.org/midnite81/timekeeper/v/unstable)](https://packagist.org/packages/midnite81/timekeeper) [![License](https://poser.pugx.org/midnite81/timekeeper/license.svg)](https://packagist.org/packages/midnite81/timekeeper)

A series of scopes for Laravel Models to do with Time Management.

Please note: This project is a work in progress.

## Relationship Diagram

![Relationship Diagram](https://raw.githubusercontent.com/midnite81/timekeeper/master/diagram/relationships.png)

## Installation

This package requires PHP 5.6+ and Laravel 5.

To install through composer include the package in your `composer.json`.

"midnite81/timekeeper": "0.2.*"

Run `composer install` or `composer update` to download the dependencies or you can run `composer require midnite81/timekeeper`.

### Laravel 5 Integration

There is no service provider to install. Simply include the trait to the model you need to use it on.

## Example Usage

On your model simply add the use statement to the Model you want to use it on.

```php
use Midnite81\TimeKeeper\Traits\TimeKeeper;

class YourModel
{
use TimeKeeper;

// ...

}
```

Then reference it in your controller or service etc;

```php
public function check() {

$overlap = YourModel::overlapsWith('2016-01-01 15:32:00', '2016-01-01 16:46:00')->exists();
$after = YourModel::after('2016-01-01 10:00:00', 2016-01-01 11:00:00', 'start', 'end')->exists();

// ...

}
```

All scopes take the following arguments

* Start DateTime (yyyy-mm-dd hh:ii)
* End DateTime (yyyy-mm-dd hh:ii)
* Start Time Column in Database (optional, defaults to start_time)
* End Time Column in Database (optional, defaults to end_time)