Viewing file: lib_datas.php (7.17 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// Coloca a data no formato brasileiro dd/mm/yyyy
function formata_data($datasql) {
if ($datasql) {
// caso a data seja no formato yyyy-mm-dd
if (strpos($datasql, "-") !== false) {
if (strpos($datasql,":")) {
$data = substr($datasql,0,strpos($datasql," "));
list($ano,$mes,$dia) = explode("-",$data);
return "$dia/$mes/$ano";
}
else
list($ano,$mes,$dia) = explode("-",$datasql);
}
else {
list($mes,$dia,$ano) = explode("/",$datasql);
}
return "$dia/$mes/$ano";
}
}
function formata_data_hora($datasql) {
if ($datasql) {
// caso a data seja no formato yyyy-mm-dd
if (strpos($datasql, "-") !== false) {
if (strpos($datasql,":")) {
$data = substr($datasql,0,strpos($datasql," "));
$hora = substr($datasql,strpos($datasql," "));
list($ano,$mes,$dia) = explode("-",$data);
return "$dia/$mes/$ano $hora";
}
else
list($ano,$mes,$dia) = explode("-",$datasql);
}
else {
list($mes,$dia,$ano) = explode("/",$datasql);
}
return "$dia/$mes/$ano";
}
}
function prepara_data($datasql) {
$datasql = trim($datasql);
if (strpos($datasql,"-") !== false)
return $datasql;
if (strpos($datasql," ") !== false) {
$data = substr($datasql,0,strpos($datasql," "));
$hora = substr($datasql,strpos($datasql," "));
list($dia,$mes,$ano) = explode("/",$data);
if (!@checkdate($mes, $dia, $ano))
return "0000-00-00";
else
return "$ano-$mes-$dia $hora";
}
else {
list($dia,$mes,$ano) = explode("/",$datasql);
if (!@checkdate($mes, $dia, $ano))
return "0000-00-00";
else
return "$ano-$mes-$dia";
}
}
function date_dif($date_ini, $date_fim) { // v 1.0
if (strpos($date_ini, "-")) $date_ini = formata_data($date_ini);
if (strpos($date_fim, "-")) $date_fim = formata_data($date_fim);
$date_ini = mktime(0,0,1,substr($date_ini, 3, 2),substr($date_ini, 0, 2),substr($date_ini, 6, 4));
$date_fim = mktime(0,0,1,substr($date_fim, 3, 2),substr($date_fim, 0, 2),substr($date_fim, 6, 4));
$dif = round(($date_fim - $date_ini) / 86400);
return $dif;
}
function date_dif_em_meses($date_ini, $date_fim) { // Conta quantos meses existem entre duas datas (conta
if (strpos($data_ini, "-")) $data_ini = formata_data($date_ini); // por quantos meses passa aquela data)
if (strpos($date_fim, "-")) $date_fim = formata_data($date_fim); // Ex.: 13/01/2006 até 20/02/2006 passou por dois meses (Janeiro e Fevereiro)
$mes_ini = substr($date_ini, 3, 2);
$ano_ini = substr($date_ini, 6, 4);
$mes_fim = substr($date_fim, 3, 2);
$ano_fim = substr($date_fim, 6, 4);
if (($ano_ini == $ano_fim) and ($mes_ini <= $mes_fim)) {
return $mes_fim - $mes_ini + 1;
}
elseif ($ano_fim > $ano_ini) {
$dif_ano = $ano_fim - $ano_ini;
return ($dif_ano * 12) - $mes_ini + $mes_fim + 1;
}
}
function soma_data($data, $dias) { // v 1.0
if (strcmp(substr($data, 2, 1 ), "/") == 0)
$data = substr($data, 6, 4).substr($data, 2, 4).substr($data, 0, 2);
$data_fim = getdate(strtotime($data));
$data_fim[0] = $data_fim[0] + (86400 * $dias);
return date("d/m/Y",$data_fim[0]);
}
function time_dif($hora_ini, $hora_fim) {//Retorna a diferenca em MINUTOS
if (strpos($hora_ini,':') > 0) {
$hi = (int) substr($hora_ini,0,strpos($hora_ini,':'));
$mi = (int) substr($hora_ini,strpos($hora_ini,':')+1);
}
else {
$hi = (int) $hora_ini;
$mi = 0;
}
if (strpos($hora_fim,':') > 0) {
$hf = (int) substr($hora_fim,0,strpos($hora_fim,':'));
$mf = (int) substr($hora_fim,strpos($hora_fim,':')+1);
}
else {
$hf = (int) $hora_fim;
$mf = 0;
}
$dif_minutos = (($hf - $hi) * 60) + $mf - $mi;
return $dif_minutos;
}
function horas_dif($hora_ini, $hora_fim) { // Retorna a diferença num Array
$hora_ini = strtotime($hora_ini);
$hora_fim = strtotime($hora_fim);
$segundos = ($hora_fim > $hora_ini ? $hora_fim - $hora_ini : $hora_ini - $hora_fim);
$minutos = (int)($segundos / 60);
$segundos = ($segundos - $minutos * 60);
$horas = (int)($minutos / 60);
$minutos = $minutos - $horas*60;
return array("hora" => $horas, "minuto" => $minutos, "segundo" => $segundos);
}
function seg2tempo($seg, $exibe_segundos=true) {
$horas = (int)($seg / 3600);
$minutos = (int)(($seg - ($horas * 3600))/60);
$seg = $seg - $minutos*60 - $horas*3600;
$retorno = $horas . "h";
if ($minutos < 10) $minutos = "0" . $minutos;
$retorno .= $minutos . "m";
if ($exibe_segundos) {
if ($seg < 10) $seg = "0" . $seg;
$retorno .= $seg . "s";
}
return $retorno;
}
function formata_tempo($tempo) {
return substr($tempo, 0, 5);
}
function formata_hora($tempo) { return formata_tempo($tempo); }
function prepara_tempo($tempo) {
if (strpos($tempo,":")) {
$hora = substr($tempo,0,strpos($tempo,":"));
$tempo = substr($tempo,strpos($tempo,":")+1);
if (strpos($tempo,":")) {
$minutos = substr($tempo,0,strpos($tempo,":"));
$segundos = substr($tempo,strpos($tempo,":")+1);
}
else
$minutos = $tempo;
}
else//Só possue hora
$hora = $tempo;
if (!$hora)
$hora = 0;
if (!$minutos)
$minutos = 0;
if (!$segundos)
$segundos = 0;
if ($hora<10)
$hora = "0" . $hora;
if ($minutos<10)
$minutos = "0" . $minutos;
if ($segundos<10)
$segundos = "0" . $segundos;
return "$hora:$minutos:$segundos";
}
function numero2mes($num_mes) {
switch($num_mes) {
case "1": case "01": return "Janeiro"; break;
case "2": case "02": return "Fevereiro"; break;
case "3": case "03": return "Março"; break;
case "4": case "04": return "Abril"; break;
case "5": case "05": return "Maio"; break;
case "6": case "06": return "Junho"; break;
case "7": case "07": return "Julho"; break;
case "8": case "08": return "Agosto"; break;
case "9": case "09": return "Setembro"; break;
case "10": return "Outubro"; break;
case "11": return "Novembro"; break;
case "12": return "Dezembro"; break;
}
}
function desmonta_data($data) {
// caso a data seja no formato yyyy-mm-dd
if (strpos($data, "-")) {
$result[ano] = substr($data, 0, 4);
$result[mes] = substr($data, 5, 2);
$result[dia] = substr($data, 8, 2);
}
else {
if ($data[1] == '/')
$data = '0' + $data;
if ($data[4] == '/')
$data = substr($data, 0, 3) . '0' . substr($data, 6, 4);
$result[dia] = $data[0].$data[1];
$result[mes] = $data[3].$data[4];
$result[ano] = $data[6].$data[7].$data[8].$data[9];
}
return $result;
}
// Calcula próximas datas com base no formato de Intervalos utilizados pela Scuna nos Bancos de Dados
// Ex.: 15/30/45/60
function calcula_venctos($dt_inicial, $intervalos) {
$data = desmonta_data($dt_inicial);
$intervalos = explode("/", $intervalos);
for ($i=0 ; $i<count($intervalos) ; $i++) {
$vencto[$i] = date("d/m/Y", mktime(0,0,0, $data[mes], $data[dia]+$intervalos[$i], $data[ano]));
}
return $vencto;
}
?>
|