terça-feira, 29 de março de 2016

PHP - Funções para manipulação de Data e Hora

Todo programador já precisou ou precisará algum dia manipular datas no php e estou disponibilizando aqui algumas funções para exibir, validar e converter datas.

1- Função que retorna a data atual no padrão Português Brasileiro (dd/MM/YYYY):
function data_atual()
{

// leitura das datas
$dia = date('d');
$mes = date('m');
$ano = date('Y');

// definindo padrão pt (dd/MM/YYYY)
$data = "$dia/$mes/$ano";

return $data;
}
Utilização:
data_atual();
2- Função que retorna a data atual no padrão Inglês (YYYY-MM-DD):
function data_atual_en() {

// leitura das datas
$dia = date('d');
$mes = date('m');
$ano = date('Y');

// definindo padrão en (YYYY-MM-DD)
$data_en = "$ano-$mes-$dia";

return $data_en;
}
Utilização:
data_atual_en();
3- FUNÇÃO QUE RETORNA A HORA ATUAL (Hora e Minuto)
function hora_atual() {
 $hora = date("H:i");
 return $hora;
}
Utilização:
hora_atual();
4- FUNÇÃO HORA ATUAL COMPLETA (Hora / Minuto / Segundo)
function hora_atual_completa() {
 $hora = date("H:i:s");
 return $hora;
}
Utilização:
hora_atual_completa();
5- FUNÇÃO QUE VALIDA A DATA
Esta função faz todas a verificações necessárias como verificar se o mês está entre 1 e 12,  verificar se o dia está dentro dos dias permitidos para aquele mês (leva em consideração os anos bissextos) e verificar se o ano é válido.
OBS.: As datas enviadas podem estar no formato inglês (en) ou brasileiro (pt).
function valida_data($data, $tipo = "pt")
{

 if ($tipo == 'pt')
 {
  $d = explode("/", $data);
  $dia = $d[0];
  $mes = $d[1];
  $ano = $d[2];
 }
 else if ($tipo == 'en')
 {
  $d = explode("-",$data);
  $dia = $d[2];
  $mes = $d[1];
  $ano = $d[0];
 }

 //usando função checkdate para validar a data
 if (checkdate($mes, $dia, $ano))
 {
  $data = $ano.'/'.$mes.'/'.$dia;

  if (
   //verificando se o ano tem 4 dígitos
   (strlen($ano) != '4') ||
   //verificando se o mês é menor que zero
   ($mes <= '0') ||
                        //verificando se o mês é maior que 12
                        ($mes > '12') ||
   //verificando se o dia é menor que zero
   ($dia <= '0') ||
                        //verificando se o dia é maior que 31
                        ($dia > '31')
      )
  {
   return false;
  }

  if (strlen($data) == 10)
   return true;
 }
 else
 {
  return false;
 }
}
Utilização:
Validar data no formato brasileiro (dd/mm/yyyy):
valida_data('27/07/2009', 'pt');
Validar data no formato inglês (yyyy-mm-dd):
valida_data('2009-07-27', 'en');
6- CONVERTER DATA BRASILEIRA (dd/mm/YYY) PARA PADRAO DO BANCO DE DADOS
function data_user_para_mysql($y){
    $data_inverter = explode("/",$y);
    $x = $data_inverter[2].'-'. $data_inverter[1].'-'. $data_inverter[0];
    return $x;
}
Utilização:
data_user_para_mysql('11/02/1992')

Resultado: 1992-02-11
7- CONVERTER DATA DO BANCO DE DADOS PARA DATA BRASILEIRA
function data_mysql_para_user($y)
{
 if ($y != '')
 {
  $data_inverter = explode("-",$y);
  $x = $data_inverter[2].'/'. $data_inverter[1].'/'. $data_inverter[0];
  return $x;
 }
 else
 {
  return '';
 }

}
É isso ai pessoal, em breve mais postagens sobre PHP... 
 

Nenhum comentário:

Postar um comentário