Skip to content

clearvox/constraints-date-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DateTime Constraints

Travis

DateTime Constraints Library. Use this to add constraints to a validator and verify DateTime objects pass those constraints. Useful for Event or Calendar libraries.

Install

Via Composer

$ composer require clearvox/constraints-date

Usage

<?php
require 'vendor/autoload.php';

use Clearvox\DateConstraints\Constraints\Day\DayConstraintInterface;
use Clearvox\DateConstraints\Constraints\Day\SpecificDayConstraint;
use Clearvox\DateConstraints\Constraints\Month\MonthConstraintInterface;
use Clearvox\DateConstraints\Constraints\Month\SpecificMonthConstraint;
use Clearvox\DateConstraints\Validators\AndValidator;

// Build a validator instance
$validator = new AndValidator();

// Add constraints to that validator
$validator
    ->addConstraint(new SpecificDayConstraint(DayConstraintInterface::TUESDAY))
    ->addConstraint(new SpecificMonthConstraint(MonthConstraintInterface::FEBRUARY))
    
// Attempt a datetime
$validator->validFor(new DateTime('Tuesday, 16 Feb 2016 13:00:00 GMT')) // true
$validator->validFor(new DateTime('Monday, 15 Feb 2016 13:00:00 GMT')) // false

Another example with a range of time, useful for workday validation

<?php
// Build the validator instance
$validator = new AndValidator();

// Add Constraints to that validator
$validator
    ->addConstraint(new BetweenTimeConstraint(new DateTime('09:00:00'), new DateTime('17:00:00'))
    
// Attempt a datetime
$validator->validFor(new DateTime('Tuesday, 16 Feb 2016 13:00:00 GMT')) // true
$validator->validFor(new DateTime('Tuesday, 16 Feb 2016 18:00:00 GMT')) // false

Tests

We have a full PHPUnit test suite. To run the tests, run the following command from the project folder.

$ composer test

Contributors

Contributions are welcome and will be fully credited.

License

The MIT License (MIT). Please see License File for more information.

About

A PHP DateTime Constraints Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages