HOWTO · PHP

Como converter uma data em um timestamp em PHP

Este artigo introduz como converter uma data para um carimbo de data em PHP. Inclui a função strtotime(), função strptime(), função getTimestamp() e função format().

Nesta página

Neste artigo, vamos introduzir métodos para converter uma data para um timestamp em PHP.

  • Utilizando a função strtotime()
  • Utilizando a função strptime()
  • Utilizando a função getTimestamp()
  • Utilizando a função format()

Utilize strtotime() Função para converter uma data em um timestamp em PHP

A função integrada strtotime() converte uma data para um Unix timestamp. Um timestamp Unix é o número total de segundos calculado a partir da época Unix (1º de janeiro de 1970). A sintaxe correta para utilizar esta função é a seguinte

strtotime($dateString,$timeNow);

Esta função tem dois parâmetros. $dateString é a string de data/hora que deve estar de acordo com PHP formato válido. É um parâmetro obrigatório. O outro parâmetro $timeNow é opcional, é o carimbo de data/hora que é utilizado para o cálculo de datas relativas. A hora atual now é o valor padrão se o segundo parâmetro for omitido.

<?php
$timestamp = strtotime("23-04-2020");
echo "The timestamp is $timestamp.";
?>

A data aqui está no formato "d-m-Y". Passamos apenas um único parâmetro, pois ele converterá a data para um Unix timestamp.

Resultado:

The timestamp is 1587600000.

Utilize strptime() Função para converter uma data para um carimbo de tempo em PHP

Esta é outra função para converter uma data em um Unix timestamp. Ela não converte a data diretamente para um date. Ele retorna uma array que informa sobre os segundos, minutos, horas e vários outros detalhes. Podemos utilizar estes detalhes para converter uma data para um timestamp.

strptime($dateString, $format);

Ele tem dois parâmetros obrigatórios. O $dateString é a string de data e o $format é o formato para analisar o $dateString.

<?php
$array = strptime('23-04-2020', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $array['tm_mon']+1, $array['tm_mday'], $array['tm_year']+1900);
echo "The timestamp is $timestamp.";
?>

Resultado:

The timestamp is 1587600000.

Após gerar o array, a função mktime() converte o date para um timestamp.

A sintaxe da função mktime() é

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

is_dst especifica se a data e hora é um horário de verão, mas é removido do PHP 7.0.0.

Advertência
Vamos adicionar 1 a $array['tm_mon'] e depois utilizaremos a soma como parâmetro de mktime, porque $array['tm_mon'] começa de 0, ou em outras palavras, $array['tm_mon'] de janeiro é 0.

Utilize getTimestamp() Função para converter uma data para um timestamp em PHP

getTimestamp() método do objeto DateTime é um método simples para converter uma data em um carimbo da hora. Ele tem outra forma de representação date_timestamp_get() que é a representação do estilo de procedimento.

$datetimeObject->getTimestamp(); 

Vamos criar um objeto Datetime para chamar esta função. Este é o estilo orientado ao objeto de chamada de uma função.

<?php
$date = new DateTime('2020-04-23');
$timestamp = $date->getTimestamp();
echo "The timestamp is $timestamp.";
?>

O objeto $date da classe Datetime chamou o método getTimestamp() para converter a date para um Unix timestamp.

Resultado:

The timestamp is 1587600000.

Use a função format() para converter uma data em um carimbo de data/hora em PHP

Também podemos utilizar o método format() de DateTime para converter uma data para um timestamp. Este método tem outra representação date_format() que é a representação do estilo de procedimento da função format().

$datetimeObject->format("U"); 

Para converter uma data para um timestamp, o formato que passaremos como uma string é "U".

<?php
$dateObject = new DateTime('2020-04-23');
$timestamp = $dateObject->format("U");
echo "The timestamp is $timestamp.";
?>

O objeto $dateObject da classe Datetime chamou a função format() para converter a data para um timestamp do Unix.

Resultado:

The timestamp is 1587600000.