Date

Responsável por verificar a validade de uma data dado um formato específico e ainda podendo converter facilmente entre formatos.

Tabela de Caracteres

Para uma rápida assimilação, utilizamos uma sintaxe igual à utilizada na função nativa date()

Caractere

Descrição

Intervalo

d

dia

01-31

j

dia

1-31

m

mês

01-12

n

mês

1-12

y

ano

00-99 (20xx entre 00-69 e 19xx entre 70-99)

Y

ano

1970-2099

Exemplos

public static validate      (string $subject, string $format)
public static validateArray (array  $array,   string $pattern)

validate( )

use Cajudev\Validator\Date;

//Retorna um objeto Date ou null se a data for inválida.

if ($date = Date::validate('2018-12-19', 'Y-m-d')) {

   $date->getDate();        // 2018-12-19 <<< Mesmo formato de entrada
   $date->getDate('d/m/y'); // 19/12/18   <<< Saída personalizada
   $date->getDay();         // 19
   $date->getMonth();       // 12
   $date->getYear();        // 2018
   $date->getTimestamp()    // 1545177600

} else {
   ...
}

validateArray( )

use Cajudev\Validator\Date;

//Retorna um array de objetos Date contendo apenas datas válidas.

$array = ['2018-12-19', '12/05/2018', '14-02-18', '2018/01/05', '1995-02-18', '20.08.2000'];

if ($dates = Date::validateArray($array, 'Y-m-d')) {

   print_r($dates);

} else {
      ...
}

Resultado:

Array
(
   [0] => Cajudev\Validator\Date Object
      (
         [date:Cajudev\Validator\Date:private] => "2018-12-19"
         [day:Cajudev\Validator\Date:private] => "19"
         [month:Cajudev\Validator\Date:private] => "12"
         [year:Cajudev\Validator\Date:private] => "2018"
         [timestamp:Cajudev\Validator\Date:private] => "1545177600"
      )

   [1] => Cajudev\Validator\Date Object
      (
         [date:Cajudev\Validator\Date:private] => "1995-02-18"
         [day:Cajudev\Validator\Date:private] => "18"
         [month:Cajudev\Validator\Date:private] => "02"
         [year:Cajudev\Validator\Date:private] => "1995"
         [timestamp:Cajudev\Validator\Date:private] => "793065600"
      )
)