Data e Hora em PHP

Mais que trabalhar com Data e Hora em PHP, este post ajuda a explicar um conceito que normalmente não é claro para os iniciantes em Desenvolvimento Web, que é o fato de a Linguagem PHP rodar no lado do Servidor.

A questão é que para trabalhar com Data e Hora em PHP utilizamos a função date, e essa data/hora vem do Servidor Web e não da máquina do internauta que esta acessando a aplicação. Isso quer dizer que mesmo se a data/hora do Sistema Operacional usuário estiverem erradas, ele irá visualizar a Data/Hora corretamente no site pois, como já foi dito, esses dados vem do Servidor (caso a data/hora do servidor estejam corretas).

Você também pode exibir a Data/Hora em um site utilizando uma linguagem que roda do lado cliente (navegador), como JavaScript por exemplo. No entanto, neste caso, se a data/hora do Sistema Operacional estiverem incorretas, as informações também serão exibida erradamente no site.

Exibindo Data e Hora com PHP

Conforme foi dito anteriormente, vamos usar a função date para exibir a Data e a Hora com PHP. Essa função recebe um parâmetros com o Tipo de Dados String que representa a formatação da Data/Hora.

Observe o código abaixo:
<?php
$dataAtual = date("d/m/Y");
echo $dataAtual;
?>
O executar o Script acima imprime na tela 23/09/2010 (dia em que o post foi escrito).

Repare que, na linha 2, utilizei a função date para atribuir à variável $dataAtual a data de hoje. Perceba também que passei a String d/m/Y como parâmetro na função date, esses caracteres representam a formatação da data já que d = dia, m = mês e Y = ano.

Se quiser adicionar a Hora, o código fica assim:
<?php
$dataHora = date("d/m/Y h:i:s");
echo $dataHora;
?>
Testando aqui, recebi o resultado: 23/09/2010 10:08:40.

Repare na segunda linha que após o Y (que representa o ano), eu dei um espaço e adicionei h:i:s pois: h = hora, i = minuto e s = segundo.

Veja uma lista resumida de formatações aceitas pela função date:
Caracter Descrição De Até
Dia
j Dia do mês sem preenchimento de zero 1 31
d Dia do mês com preenchimento de zero 01 31
Semana
w Representação numérica do dia da semana 0 (domingo) 6 (sábado)
L Dia da semana por extenso Sunday Saturday
Mês
n Representação numérica do mês sem preenchimento de zero 1 12
m Representação numérica do mês com preenchimento de zero 01 12
F Mês por extenso January December
Ano
Y Ano com quatro dígitos
y Ano com dois dígitos
Hora
g Hora sem preenchimento de zero 1 12
h Hora com preenchimento de zero 01 12
G Hora sem preenchimento de zero 0 23
H Hora com preenchimento de zero 00 23
Minuto
i Minuto com preenchimento de zero 00 59
Segundo
s Segundo com preenchimento de zero 00 59
Confira a tabela completa em: http://php.net/manual/pt_BR/function.date.php

Leia mais:

16 comentários:

  1. muito bom!! ajudou bastante.

    ResponderExcluir
  2. Regular, aprenda a trabalhar com datas em php eh bem mais q isso, soh foi mostrado o basico aki, agora oq interessa q eh fazer calculos com datas, vencimentos e tal, ficou devendo. dar print da hora do servidor nao eh trabalhar com datas.

    ResponderExcluir
    Respostas
    1. marcio, se é que é esse seu nome, você esta se comportando como um palhaço.
      Ao Denecir eu te saúdo pela iniciativa.

      Como sugestão peço para trabalhar um pouco as cores de fundo. Eu apesar de gostar de janelas de terminal não fico a vontade com esse fundo preto.
      Sucesso!

      Excluir
    2. Oi Romero, obrigado pelos comentários!

      Quanto ao fundo escuro, apesar de ser mais bonito na minha opinião, concordo que não é a melhor opção para leitura. Só depois de muito estudo sobre usabilidade que percebi isso.

      Estou preparando uma novidade, em breve vou anunciar. Prometo que com fundo branco. :-)

      Abraço Irmão!

      Excluir
  3. Marcio,

    O Objetivo do Blog é mostrar recursos básicos das linguagens e explicar recursos mais avançados com o tempo.

    Didaticamente, esse é o correto e é a linha que adotei para publicar os Posts do Blog.

    Abraço!

    ResponderExcluir
  4. Muito bom.

    Me ajudou em algo que precisava aqui.

    Obrigado.

    ResponderExcluir
  5. Cara, mto bom...me ajudou bastante num trabalho da facul hehe

    ResponderExcluir
  6. ?php date_default_timezone_set('Brazil/East'); $data = date('H:i:s'); echo $data; ?>

    ResponderExcluir
  7. Ótima a tua didática !

    Obrigado por compartilhar seus conhecimentos...

    ResponderExcluir
  8. eu vim nesse site mas mesmo assim não adiantou, eu tava fuçando a função de data e fiz uma aqui, "sou novato tmb" só que ficou com padrão americano, não digo padrão de datas americano maa ele mostra a data e o dia em horário de washington e não de brasíia, dá para fazer isso com incremento mas dá muito trabalho e no php eu nao sei fazer, estou eu busca de um código em php que faça isso

    ResponderExcluir
    Respostas
    1. Oi Erick, obrigado por comentar no meu blog.

      Essa é mole, é só configurar o timezone no php.ini

      Dá uma olhada em:
      http://tribotecnologica.com.br/?p=1664

      Espero ter ajudado!

      Abraço!

      Excluir
  9. Olá Denecir,
    estou iniciando em PHP e tava aqui fazendo uns exercícios e pesquisando sobre exibição de data e hora, encontrei seu blog.
    Ao inserir o código echo $date a data é exibida corretamente mas a hora não. Como corrigir?
    segue o código usado:
    //FUNÇÃO DATE()
    echo $data = date("d/m/Y H:i:s ") . "
    ";
    Quanto às críticas negativas, paciência...
    Nem Jesus agradou a todo mundo.
    O que chateia mesmo é a falta de respeito que alguns demonstram.
    Deixo pra você o conselho que meus pais me deram quanto a esses que nos ofendem:
    " O mundo ensina"
    " Deixe que outro fecha a porta"
    Grande abraço
    Cassio
    meu blog: professorfranciscocassio.blogspot.com

    ResponderExcluir
    Respostas
    1. Olá Francisco Cassio, Obrigado por participar do Blog!

      O PHP é uma linguagem que roda no servidor. Então, se você estiver rodando esse exemplo na sua máquina, basta ajustar a data/hora no seu computador (Se for Windows, use o Painel de Controle).

      Agora, se estiver rodando esse exemplo em algum servidor de hospedagem, coloca a seguinte linha antes:

      date_default_timezone_set('America/Sao_Paulo');

      Isso força o servidor a considerar o nosso fuso horário. Entendeu?

      Espero ter ajudado!

      Abraço!

      Excluir
    2. Olá Denecir, obrigado pela ajuda (y)

      Excluir

O que você achou do post? Faça um comentário.

Aprenda a receber dados de Formulário com PHP

Existem três arrays associativos que podemos usar para receber dados de Formulários HTML em PHP. São eles: $_GET , $_POST e $_REQUEST . O...