Como converter uma data em um timestamp em PHP

Minahil Noor 30 janeiro 2023
  1. Utilize strtotime() Função para converter uma data em um timestamp em PHP
  2. Utilize strptime() Função para converter uma data para um carimbo de tempo em PHP
  3. Utilize getTimestamp() Função para converter uma data para um timestamp em PHP
  4. Use a função format() para converter uma data em um carimbo de data/hora em PHP
Como converter uma data em um timestamp em PHP

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.

Artigo relacionado - PHP DateTime

Artigo relacionado - PHP Timestamp