DATE AND TIME

Manipulando datas em PHP

POR DAIANE ALVES - 2020

@DAIANEALVESRJ

@LyseonTech

Lyseon Tech

Cooperativa de Software Livre

@PHPRIO

@PHPwomenBr

Desenvolvimento e manutenção

Funções e classes nativas

Sem instalação de bibliotecas externas

Eventos, disparo mensagens, logs,  etc.

Date and Time

Date function

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!

&copy; 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

Referências

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

@DAIANEALVESRJ

Contato

@LyseonTECH

Contato

Date and time - Manipulando datas em PHP

By Daiane Alves

Date and time - Manipulando datas em PHP

Manipular datas é um dos desafios no desenvolvimento. Em muitos casos, utilizamos datas para controlar o correto funcionamento de um sistema, por exemplo. O PHP oferece vários recursos nativos para manipulação de datas. Venha conhecer alguns desses recursos, aprender como aplica-los e entender como eles podem te salvar no dia a dia.

  • 667