PHP Data e Hora

A função date() do PHP é usada para formatar datas ou horários.

Função Date() do PHP

A função Date() do PHP formata timestamps em datas e horários mais legíveis.

Sintaxe

date(format,timestamp)
Parâmetros Descrição
format Obrigatório. Determina o formato do timestamp.
timestamp Opcional. Determina o timestamp. O padrão é a data e hora atuais.

Notas:Timestamp é uma sequência de caracteres que representa a data e hora de um evento específico.

Obter data simples

O parâmetro de formato da função date() é obrigatório, eles determinam como formatar a data ou a hora.

A seguir estão listados alguns caracteres comuns usados em datas:

  • d - Representa o dia do mês (01-31)
  • m - Representa o mês (01-12)
  • Y - Representa o ano (quatro dígitos)
  • 1 - Representa o dia da semana

Outros caracteres, como "/", "." ou "-", também podem ser inseridos no meio dos caracteres para aumentar outros formatos.

Os exemplos a seguir usam três métodos diferentes para formatar a data de hoje:

Exemplo

<?php
echo "Hoje é " . date("Y/m/d") . "<br>";
echo "Hoje é " . date("Y.m.d") . "<br>";
echo "Hoje é " . date("Y-m-d") . "<br>";
echo "Hoje é " . date("l");
?>

Exemplo de Execução

PHP Avisos - Ano de copyright automático

Use a função date() para atualizar automaticamente o ano da versão do seu site:

Exemplo

© 2010-<?php echo date("Y")?>

Exemplo de Execução

Obter tempo simples

Aqui estão os caracteres comuns usados em tempos:

  • h - formato de 12 horas com zero à esquerda
  • i - minutos com zero à esquerda
  • s - segundos com zero à esquerda (00-59)
  • a - minúsculas, antes e depois do meio-dia (am ou pm)

O exemplo a seguir imprime a hora atual no formato especificado:

Exemplo

<?php
echo "O tempo atual é " . date("h:i:sa");
?>

Exemplo de Execução

Notas:Atenção: A função date() do PHP retorna a data/hora atual do servidor!

Obter a zona horária

Se o tempo retornado pelo código não for correto, pode ser porque o seu servidor está localizado em outro país ou foi configurado para uma outra zona horária.

Portanto, se você precisar de um tempo exato com base em uma localização específica, você pode definir a zona horária a ser usada.

O exemplo a seguir define o fuso horário como "Asia/Shanghai" e então imprime a hora atual no formato especificado:

Exemplo

<?php
date_default_timezone_set("Asia/Shanghai");
echo "O tempo atual é " . date("h:i:sa");
?>

Exemplo de Execução

Criando datas com PHP mktime()

O parâmetro opcional de timestamp da função date() define o timestamp. Se você não especificar um timestamp, será usado a data e hora atuais (como no exemplo acima).

A função mktime() retorna o timestamp Unix da data. O timestamp Unix contém o número de segundos entre o Epoch Unix (1 de janeiro de 1970 00:00:00 GMT) e o tempo especificado.

Sintaxe

mktime(hora,minuto,segundo,mês,dia,ano)

O exemplo a seguir cria uma data e hora usando uma série de parâmetros da função mktime():

Exemplo

<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "A data de criação é " . date("Y-m-d h:i:sa", $d);
?>

Exemplo de Execução

Criando datas por meio de strings com PHP strtotime()

A função strtotime() do PHP é usada para converter strings legíveis por humanos em tempo Unix.

Sintaxe

strtotime(time,now)

O exemplo a seguir cria uma data e hora usando a função strtotime():

Exemplo

<?php
$d=strtotime("10:38pm 15 de abril de 2015");
echo "A data de criação é " . date("Y-m-d h:i:sa", $d);
?>

Exemplo de Execução

O PHP é muito inteligente ao converter strings em datas, então você pode usar vários valores:

Exemplo

<?php
$d=strtotime("amanhã");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

Exemplo de Execução

No entanto, strtotime() não é perfeito, então lembre-se de verificar a string inserida.

Mais Exemplos de Data

O exemplo a seguir imprime a data da próxima sexta-feira:

Exemplo

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks",$startdate);
while ($startdate < $enddate) {
  echo date("M d", $startdate),"<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>

Exemplo de Execução

O exemplo a seguir imprime o número de dias antes de 4 de julho:

Exemplo

<?php
$d1=strtotime("December 31");
$d2=ceil(($d1-time())/60/60/24);
echo "Dias até 31 de dezembro: " . $d2 ." dias.";
?>

Exemplo de Execução

Manual Completo de Referência de Data PHP

Para obter o manual completo de todas as funções de data, acesse nosso Manual de Referência de Data PHP.

Este manual contém uma descrição breve de cada função e exemplos de uso.