PABX da Simples IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

80 lines
2.1 KiB

<?php
function EntraData($data, $formato = 'd/m/Y') {
$dt = DateTime::createFromFormat($formato, $data);
if (!$dt) {
throw new Exception("A data: $data é invá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ão retornada.
*/
$sepR = array('-', '-', ' ', ':', ':', '');
/*
* Convert os dados do parametro "$formato" para maiúsculo para permitir a busca
* da posiçã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 é 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 é inválida!");
}
}
function FormataData($data, $formato = 'Y-m-d') {
try {
$data = new DateTime($data);
return $data->format($formato);
} catch (Exception $ex) {
throw new Exception("Não foi possível formatar a data: $data!");
}
}
function Upper(&$val, $key) {
$val = strtoupper($val);
}