PHP - Data e Hora
As datas são tão parte da vida cotidiana que se torna fácil trabalhar com elas sem pensar. O PHP também fornece ferramentas poderosas para aritmética de datas que tornam a manipulação de datas fácil.
Obtendo o carimbo de hora com hora ()
PHP's time()A função fornece todas as informações de que você precisa sobre a data e a hora atuais. Não requer argumentos, mas retorna um inteiro.
O número inteiro retornado por time () representa o número de segundos decorridos desde a meia-noite GMT em 1º de janeiro de 1970. Esse momento é conhecido como época do UNIX e o número de segundos decorridos desde então é conhecido como carimbo de hora.
<?php
print time();
?>
Isso produzirá o seguinte resultado -
1480930103
Isso é algo difícil de entender. Mas o PHP oferece ferramentas excelentes para converter um registro de data e hora em uma forma com a qual os humanos se sintam confortáveis.
Convertendo um carimbo de data / hora com getdate ()
A função getdate()opcionalmente, aceita um carimbo de data / hora e retorna uma matriz associativa contendo informações sobre a data. Se você omitir o carimbo de hora, ele funcionará com o carimbo de hora atual conforme retornado por time ().
A tabela a seguir lista os elementos contidos na matriz retornada por getdate ().
Sr. Não | Chave e descrição | Exemplo |
---|---|---|
1 | seconds Segundos depois dos minutos (0-59) |
20 |
2 | minutes Minutos após a hora (0 - 59) |
29 |
3 | hours Horas do dia (0 - 23) |
22 |
4 | mday Dia do mês (1 - 31) |
11 |
5 | wday Dia da semana (0 - 6) |
4 |
6 | mon Mês do ano (1 - 12) |
7 |
7 | year Ano (4 dígitos) |
1997 |
8 | yday Dia do ano (0 - 365) |
19 |
9 | weekday Dia da semana |
Quinta feira |
10 | month Mês do ano |
janeiro |
11 | 0 Timestamp |
948370048 |
Agora você tem controle total sobre a data e a hora. Você pode formatar essa data e hora em qualquer formato que desejar.
Exemplo
Experimente o seguinte exemplo
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val<br />";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "/";
$formated_date .= $date_array['mon'] . "/";
$formated_date .= $date_array['year'];
print $formated_date;
?>
Isso produzirá o seguinte resultado -
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
Convertendo um carimbo de hora com data ()
o date()função retorna uma string formatada que representa uma data. Você pode exercer um enorme controle sobre o formato que date () retorna com um argumento de string que você deve passar para ele.
date(format,timestamp)
A data () aceita opcionalmente um carimbo de hora. Se omitido, a data e a hora atuais serão usadas. Quaisquer outros dados que você incluir na string de formato passada para date () serão incluídos no valor de retorno.
A tabela a seguir lista os códigos que uma string de formato pode conter -
Sr. Não | Formato e descrição | Exemplo |
---|---|---|
1 | a 'am' ou 'pm' em minúsculas |
PM |
2 | A 'AM' ou 'PM' maiúsculas |
PM |
3 | d Dia do mês, um número com zeros à esquerda |
20 |
4 | D Dia da semana (três letras) |
qui |
5 | F Nome do mês |
janeiro |
6 | h Hora (formato de 12 horas - zeros à esquerda) |
12 |
7 | H Hora (formato de 24 horas - zeros à esquerda) |
22 |
8 | g Hora (formato de 12 horas - sem zeros à esquerda) |
12 |
9 | G Hora (formato de 24 horas - sem zeros à esquerda) |
22 |
10 | i Minutos (0 - 59) |
23 |
11 | j Dia do mês (sem zeros à esquerda |
20 |
12 | l (Lower 'L') Dia da semana |
Quinta feira |
13 | L Ano bissexto ('1' para sim, '0' para não) |
1 |
14 | m Mês do ano (número - zeros à esquerda) |
1 |
15 | M Mês do ano (três letras) |
Jan |
16 | r A data formatada RFC 2822 |
Qui, 21 de dezembro de 2000 16:01:07 +0200 |
17 | n Mês do ano (número - sem zeros à esquerda) |
2 |
18 | s Segundos de hora |
20 |
19 | U Carimbo de tempo |
948372444 |
20 | y Ano (dois dígitos) |
06 |
21 | Y Ano (quatro dígitos) |
2006 |
22 | z Dia do ano (0 - 365) |
206 |
23 | Z Compensação em segundos do GMT |
+5 |
Exemplo
Experimente o seguinte exemplo
<?php
print date("m/d/y G.i:s<br>", time());
echo "<br>";
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
Isso produzirá o seguinte resultado -
12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am
Espero que você tenha um bom entendimento sobre como formatar data e hora de acordo com suas necessidades. Para sua referência, uma lista completa de todas as funções de data e hora é fornecida em PHP Date & Time Functions.