midnite81 / timekeeper by midnite81

A series of scopes for Laravel Models to do with Time Management.
3,182
1
3
Package Data
Maintainer Username: midnite81
Maintainer Contact: webdev@centralblue.co.uk (Simon Rogers)
Package Create Date: 2016-05-13
Package Last Update: 2022-08-19
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-06-16 15:02:40
Package Statistics
Total Downloads: 3,182
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 1
Total Watchers: 3
Total Forks: 1
Total Open Issues: 0

TimeKeeper Latest Stable Version Total Downloads Latest Unstable Version License

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

#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.

use Midnite81\TimeKeeper\Traits\TimeKeeper;

class YourModel
{
    use TimeKeeper;

    ...

}

Then reference it in your controller or service etc;

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)