Compreendendo data e hora do PHP

Neste artigo, examinaremos as datas e horas do PHP de perto com exemplos. Abordaremos tópicos como trabalhar com fusos horários, manipular datas e horas e criar e formatar datas.

Data e hora são partes essenciais para quase todos os aplicativos da Web, e o PHP oferece uma variedade de recursos e funções integrados para trabalhar com datas e horas.

Não importa o que você precisa para formatar datas, calcular intervalos entre datas, exibir a data atual ou exibir datas em diferentes formatos, o PHP oferece todos os recursos de que você precisa.

Esta postagem ajudará você a criar uma funcionalidade de data e hora rápida e confiável em seus aplicativos da Web usando o tratamento de data e hora do PHP .



Função Data() do PHP

Com a função PHP date() , você pode formatar datas e horas em vários formatos.

Existem dois argumentos que são passados ​​para a função:

  • A string de formato e o carimbo de data/hora opcional. Na string de formato, os caracteres de formatação são usados ​​para especificar como a data deve ser formatada.
  • Timestamps são timestamps opcionais do Unix que representam a data e hora para formatar.
Quando não há carimbo de data/hora especificado, a função usa a data e hora atuais como padrão.

Sintaxe

date(format,timestamp)
Parâmetros Visão geral
formatar Isso é necessário. O formato do timestamp deve ser especificado
carimbo de data/hora É opcional. Forneça um carimbo de data/hora para a data. Por padrão, a data e hora do PHP são definidas para a data e hora atuais

O termo “ timestamp ” refere-se a uma sequência de caracteres que denotam a data e/ou hora em que um evento ocorreu.


Obter data

As funções PHP Date() requerem um parâmetro de formato que especifica como formatar a data (ou hora) quando é passada para elas.

A seguir estão alguns caracteres comuns que são usados ​​como parte de uma data:

Personagens  Visão geral
d Este valor representa o dia do mês (de 1º a 31º).
m Esta é uma representação de um mês (01-12).
Y Representa um ano inteiro (em quatro dígitos).
eu (minúsculo ' L ') – Indica o dia da semana em que se encontra.

Existem também outros caracteres que podem ser inseridos entre os caracteres para adicionar formatação adicional, como /  .  ou .

No exemplo abaixo, mostramos três maneiras diferentes de formatar a data de hoje:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
<?php
echo "Date format in dashes: " . date("d-m-Y") . "<br>";
echo "Date format in dots: " . date("d.m.Y") . "<br>";
echo "Date format in slash: " . date("d/m/Y") . "<br>";
echo "Today is " . date("l");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

No exemplo abaixo, vamos tentar diferentes formatos de datas usando a função date() :

Example: 

1
2
3
4
5
6
7
8
9
10
11
<?php
echo "Date format month/day/year: " . date("m/d/Y") . "<br>";
echo "Date format month/day, year: " . date("m/d, Y") . "<br>";
echo "Date format Year-month-day: " . date("Y-m-d") . "<br>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Função Data() do PHP


O código a seguir é um exemplo que pode ser usado para atualizar automaticamente o ano dos direitos autorais em seu site usando a função date() :

Example: 

1
2
3
4
5
6
7
© 1996-<?php echo date("Y");?>, Amazon.com, Inc. or its affiliates
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Consiga tempo

A seguir estão alguns caracteres comuns usados ​​para indicar a hora do dia:

Personagens  Visão geral
H Formato de 24 horas de uma hora (de 00 a 23).
h O formato no qual um período de 12 horas é expresso com um zero à esquerda (01 a 12).
eu Isso representa os minutos da hora com zeros à esquerda (00 a 59).
s Este é o número de segundos com zeros à esquerda (00-09).
a Um ante meridiem e post meridiem minúsculos (a hora no relógio).

A seguir está um exemplo de como a hora atual é gerada no formato especificado abaixo:

Example: 

1
2
3
4
5
6
7
8
9
<?php
echo "Current time is: " . date("H:i:sa");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Abaixo está um exemplo de hora atual no formato de 12 horas :

Example: 

1
2
3
4
5
6
7
8
9
<?php
echo "Current time in 12 hour format: " . date("h:i:sa");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembre-se : No PHP, quando a função date() é chamada, ela retornará a hora e a data atuais que foram definidas no servidor!

Agora Obtenha o Fuso Horário

Se você estiver recebendo um horário incorreto do código, pode ser porque seu servidor está localizado em outro país ou configurado para um fuso horário diferente do esperado.

Portanto, se você deseja que o horário seja preciso com base na localização real do usuário, pode definir o fuso horário para corresponder a esse local.

Há um exemplo abaixo que define o fuso horário como “ America/New_York “ e, em seguida, exibe a hora atual no formato especificado:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
date_default_timezone_set("America/New_York");
echo "The time in America/New_York zone is: " . date("h:i:sa");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
No exemplo abaixo, agora podemos definir o fuso horário como “ Europa/Londres ” para verificar se houve alteração no fuso horário:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
date_default_timezone_set("Europe/London");
echo "The time in the Europe/London zone is: " . date("h:i:sa");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Data até mktime()

A função PHP Date() aceita um timestamp como um parâmetro opcional.

Como nos exemplos acima, ignorar este campo usará a data e hora atuais.

Uma data pode ser convertida em um timestamp Unix usando a função PHP mktime() .

É um método simples de representar o número de segundos que se passaram desde a época do Unix (1º de janeiro de 1970 00:00:00 GMT) e o tempo indicado.

Sintaxe

mktime(hour, minute, second, month, day, year)

Com a função date() e a função mktime() , são criadas as seguintes data e hora:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
$d=mktime(9, 56, 21, 2, 23, 2023);
echo "Combination of mktime() and Date() functions is: " . date("Y-m-d h:i:sa", $d);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Usando as funções mktime() e Date(), podemos definir a data do passado como abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
$d=mktime(3, 4, 54, 12, 25, 2020);
echo "Date from 2020: " . date("Y-m-d h:i:sa", $d);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Data com strtotime()

Com a ajuda do PHP strtotime() , você pode converter uma string de data legível por humanos em um registro de data e hora do Unix (que indica o número de segundos desde (1º de janeiro de 1970 00:00:00 GMT).

Sintaxe

strtotime(time, now)

Aqui está um exemplo de como criar uma data e hora usando a função strtotime() :

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
$d=strtotime("03:04pm Dec 25 2020");
echo "Date from year 2020 conversion in date format: " . date("Y-m-d h:i:sa", $d);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Usando a função strtotime() obtemos a data de hoje no exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
<?php
$d=strtotime("today");
echo "Today's Date: " . date("Y-m-d h:i:sa", $d);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Felizmente, o PHP é muito bom em converter valores de string em datas.
Isso significa que você pode usar uma variedade de valores de entrada, como:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$d=strtotime("yesterday");
echo "Yesterday date: ".date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("tomorrow");
echo "Tomorrow date: ".date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("this saturday");
echo "This saturday date: ".date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+1 Months");
echo "After 1 month: ".date("Y-m-d h:i:sa", $d) . "<br>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Apesar disso, strtotime() não é uma função perfeita, então é melhor verificar as strings antes de inseri-las nela.

Abaixo está um exemplo que gera as datas do PHP para os próximos seis domingos, como segue:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$start_date = strtotime("Sunday");
$end_date = strtotime("+6 weeks", $start_date);
while ($start_date < $end_date) {
echo date("M d", $start_date) . "<br>";
$start_date = strtotime("+1 week", $start_date);
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No exemplo acima, demonstramos como gerar uma lista de datas para as próximas 6 semanas, começando no próximo domingo.
Veja como o código funciona:

1 – A primeira linha de código inicializa uma variável chamada $start-date com o valor do próximo domingo, usando a função strtotime para converter a string “Sunday” em um timestamp Unix.

2 – A segunda linha de código inicializa uma variável chamada $end-date com um timestamp Unix que representa a data 6 semanas após $start-date.

  • Isso é feito usando a função strtotime novamente, desta vez passando dois argumentos:
  • o primeiro argumento é uma string que representa um período de tempo a ser adicionado (neste caso, “ +6 semanas ”).
  • O segundo argumento é o carimbo de data/hora inicial do Unix ( $start-date ).
  • O loop while itera enquanto $start-date for menor que $end-date . Em cada iteração, ele gera a data representada pelo timestamp Unix $start-date, formatado como uma string usando a função de data.
  • O formato usado aqui é “ M d “, que exibe o nome abreviado do mês seguido do dia do mês (por exemplo, “ Mar 01 “).

3 – Após cada iteração do loop , a variável $startdate é atualizada para representar a data uma semana depois do valor atual de $start-date.

  • Isso é feito usando a função strtotime novamente, desta vez adicionando “+1 semana” ao valor atual de $start-date.
  • Isso garante que o loop irá iterar a cada domingo pelas próximas 6 semanas.
Aqui está um exemplo de como calcular o número de dias até 8 de abril:

Example: 

1
2
3
4
5
6
7
8
9
10
11
<?php
$d1=strtotime("April 08");
$d2=ceil(($d1-time())/60/60/24);
echo $d2 ." days left until April 8.";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone