|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
function EntraData($data, $formato = 'd/m/Y') {
|
|
|
|
|
|
|
|
|
|
$dt = DateTime::createFromFormat($formato, $data);
|
|
|
|
|
if (!$dt) {
|
|
|
|
|
throw new Exception("A data: $data <EFBFBD> inv<EFBFBD>lida!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return QuebraData($data, $formato);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function QuebraData($data, $formato = 'd/m/Y H:i:s') {
|
|
|
|
|
/*
|
|
|
|
|
* Autor: Amarildo Pereira.
|
|
|
|
|
* Data: 13/03/2018.
|
|
|
|
|
* Retorna a data passado no formato de dara padrao "Y-m-d H:i:s" , baseado no parametro
|
|
|
|
|
* de entrada "$formato.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Formato padrao aceito para Y -> ano M -> mes D -> dia H -> hora I -> minuto S -> segundo.
|
|
|
|
|
*/
|
|
|
|
|
$posR = array('Y', 'M', 'D', 'H', 'I', 'S');
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Separadors para a dta padr<EFBFBD>o retornada.
|
|
|
|
|
*/
|
|
|
|
|
$sepR = array('-', '-', ' ', ':', ':', '');
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Convert os dados do parametro "$formato" para mai<EFBFBD>sculo para permitir a busca
|
|
|
|
|
* da posi<EFBFBD><EFBFBD>o correspondente no array "$data".
|
|
|
|
|
*/
|
|
|
|
|
$gFormat = preg_split("/[-' ':\/]/", $formato);
|
|
|
|
|
array_walk($gFormat, 'Upper');
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Cria array a partir do parrametro "$data".
|
|
|
|
|
*/
|
|
|
|
|
$data = preg_split('/[-" ":\/]/', trim($data));
|
|
|
|
|
|
|
|
|
|
$dt = '';
|
|
|
|
|
foreach ($posR as $keyR) {
|
|
|
|
|
if ((($key = array_search($keyR, $gFormat)) !== false) && isset($data[$key])) {
|
|
|
|
|
$dt .= ($data[$key] . $sepR[array_search($keyR, $posR)]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $dt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ValidaData($data, $formato = 'd/m/Y', $message = '') {
|
|
|
|
|
/*
|
|
|
|
|
* Para utilizar "$message" passe nesse formato: "A data %s <EFBFBD> invalida!";
|
|
|
|
|
*/
|
|
|
|
|
try {
|
|
|
|
|
$dt = DateTime::createFromFormat($formato, $data);
|
|
|
|
|
if (!$dt || ($dt->format($formato) != $data)) {
|
|
|
|
|
throw new Exception();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
|
|
|
|
|
throw new Exception($message ? sprintf($message, $data) : "A data: $data <EFBFBD> inv<EFBFBD>lida!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function FormataData($data, $formato = 'Y-m-d') {
|
|
|
|
|
try {
|
|
|
|
|
$data = new DateTime($data);
|
|
|
|
|
return $data->format($formato);
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel formatar a data: $data!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Upper(&$val, $key) {
|
|
|
|
|
$val = strtoupper($val);
|
|
|
|
|
}
|