DATE AND TIME
Manipulando datas em PHP
POR DAIANE ALVES - 2020
Lyseon Tech
Cooperativa de Software Livre
Desenvolvimento e manutenção
Funções e classes nativas
Sem instalação de bibliotecas externas
Eventos, disparo mensagens, logs, etc.
Date function
sintaxe
date(string, timestamp) : string
1º parâmetro obrigatório, 2º parâmetro opcional
date( )
exemplo
// ANO-MÊS-DIA HORA:MINUTO:SEGUNDO
$today = date('Y-m-d H:i:s');
echo $today . PHP_EOL;
// Saída: 2020-12-03 20:56:30
exibir data e hora atual
date( )
formatos datas
Caracter | Descrição |
---|---|
d | Dia do mês, 2 dígitos com zero à esquerda |
D | Uma representação textual de um dia, três letras |
l ("L" min.) | A representação textual do dia da semana |
z | O dia do ano (iniciando em 0) |
F | Representação completa de um mês, como January ou March |
m | Representação numérica de um mês, com zero à esquerda |
Y | Representação de ano completa, 4 dígitos |
y | Representação do ano com dois dígitos |
date( )
dica!
© 2015-<?php echo date('Y');?>
Atualizar dinamicamente a data dos direitos autorais de um site.
date( )
formatos horas
Caracter | Descrição |
---|---|
H | Formato de 24 horas de uma hora (00 a 23) |
h | Formato de 12 horas de uma hora com zeros à esquerda |
m | Minutos com zeros à esquerda (00 a 59) |
z | O dia do ano (iniciando em 0) |
s | Segundos com zeros à esquerda (00 a 59) |
a | Ante meridiem minúsculo e Post meridiem (am ou pm) |
A | Ante meridiem minúsculo e Post meridiem (am ou pm) maiúsculo |
date( )
exemplo
echo 'Em Brasília: ' . date('H:i:s') . ' horas...' . PHP_EOL;
// exibe o horário atual do servidor
Rádio relógio...
dateTimeZone
date_time_zone()
exemplo - fuso horário
date_default_timezone_set('America/New_York');
echo 'Hora atual em Nova York: ' . date('H:i:s a' . PHP_EOL);
Altera o horário de acordo com um local específico.
Lista completa de locais na documentação do PHP
date_time_zone()
exemplo - fuso horário
// Hora em Nova York
date_default_timezone_set('America/New_York');
echo 'Hora atual em Nova York: ' . date('H:i:s a') . PHP_EOL;
// Hora em São Paulo
date_default_timezone_set('America/Sao_Paulo');
echo 'Hora atual em São Paulo: ' . date('H:i:s a') . PHP_EOL;
Altera o horário de acordo com um local específico.
Lista completa de locais na documentação do PHP
mktime
mktime()
sintaxe
mktime(hora, minuto, segundo, mês, dia, ano)
Exibe data e hora
mktime()
exemplo
$date = mktime(0, 0, 00, 12, 02, 2020);
echo 'Criado em: ' . date('d-m-Y ', $date) . PHP_EOL;
// Saída: Criado em: 02-12-2020
parâmetros obrigatórios
DateTime class
DateTime
exemplo
// Pega o momento atual
$today = new DateTime();
// Exibe no formato desejado
echo $today->format('Y-m-d') . PHP_EOL;
Com a classe DateTime podemos instanciar e obter a data e hora atuais
DateTime
exemplo
$agora = new DateTime('now'); // ou sem parâmetro
$amanha = new DateTime('tomorrow');
$proximo_ano = new DateTime('next year');
$data_aleatoria = new DateTime('2000-10-10');
echo $agora->format('Y-m-d') . PHP_EOL;
echo $amanha->format('Y-m-d') . PHP_EOL;
echo $proximo_ano->format('Y-m-d') . PHP_EOL;
echo $data_aleatoria->format('Y-m-d') . PHP_EOL;
Também é possível passar os parâmetros para o construtor da classe DateTime
strtotime
Adicionando datas
strtotime
sintaxe
strtotime ( string $datetime [, int $now = time() ] ) : int
Recebe como parâmetro uma string de formato de data em inglês (o segundo parâmetro é opcional)
strtotime
exemplo
$data = strtotime('tomorrow');
echo date('Y-m-d', $data) . PHP_EOL;
$data = strtotime('next Friday');
echo date('Y-m-d', $data) . PHP_EOL;
$data = strtotime('+3 Months');
echo date('Y-m-d', $data) . PHP_EOL;
Recebe como parâmetro uma string de formato de data em inglês
strtotime
exemplo - próximos sábados
$data_inicial = strtotime('Saturday');
$data_final = strtotime('+4 weeks', $data_inicial);
while ($data_inicial < $data_final) {
echo date('F d', $data_inicial) . PHP_EOL;
$data_inicial = strtotime('+1 week', $data_inicial);
}
Também é possível passar os parâmetros para o construtor da classe DateTime
DateTime::add
Adicionando datas
DateTime::add
exemplo - método add
Adiciona uma quantidade de dias, meses, anos, horas, minutos e segundos em um objeto DateTime passando para o método add a quantidade de períodos.
Período | Descrição |
---|---|
P5D | Período de cinco dias |
P2M | Período de dois meses |
PT10S | Período de dez segundos |
P2YT20M | Período de dois anos e vinte minutos |
DateTime::add
exemplo
// Adiciona 1 ano em $date1
$date1 = new DateTime();
$diff1Year = new DateInterval('P1Y');
$date1->add($diff1Year);
print_r($date1);
// Adiciona 10 horas em $date2
$date2 = new DateTime('2020-12-02 08:00:00');
$diff10Hours = new DateInterval('PT10H');
$date2->add($diff10Hours);
print_r($date2);
DateTime::sub
Subtraindo datas
DateTime::sub
exemplo
$date = new DateTime();
$date->sub(new DateInterval('P10D'));
// Retorna a data atual - 10 dias
print_r($date);
DateTime::diff
Diferença entre datas
DateTime::diff
exemplo - dias de vida
$data1 = new DateTime('1984-01-01');
$data2 = new DateTime();
$intervalo = $data1->diff($data2);
echo $intervalo->format('Total de dias: %a') . PHP_EOL;
echo $intervalo->format('Anos: %y %m meses e %d dias') . PHP_EOL;
Parabéns! Você acabou de descobrir que tem alguns muitos dias de vida!!!
Concluindo...
Date and Time
- Realizar diversas operações
- Sem necessidade de usar bibliotecas externas
- Várias funções e classes nativas
- Documentação do PHP
https://www.php.net/datetime
https://dev.to/daianealves/date-and-time-manipulando-datas-em-php-52a8
https://www.alura.com.br/artigos/manipulando-datas-e-horarios-com-php
https://www.w3schools.com/php/php_date.asp