Cómo convertir una fecha en una marca de tiempo en PHP

Minahil Noor 30 enero 2023
  1. Usando la función strtotime() para convertir una fecha en una marca de tiempo en PHP
  2. Usando la función strptime() para convertir una fecha en una marca de tiempo en PHP
  3. Usando la función getTimestamp() para convertir una fecha en una marca de tiempo en PHP
  4. Usando la función format() para convertir una fecha en un timestamp en PHP
Cómo convertir una fecha en una marca de tiempo en PHP

En este artículo, introduciremos métodos para convertir una date en un timestamp en PHP.

  • Usando la función strtotime()
  • Usando la función strptime()
  • Usando la función getTimestamp()
  • Usando la función format()

Usando la función strtotime() para convertir una fecha en una marca de tiempo en PHP

La función incorporada strtotime() convierte una fecha en una Unix timestamp. Un timestamp de Unix es el número total de segundos calculado a partir de la época Unix (1 de enero de 1970). La sintaxis correcta para usar esta función es la siguiente

strtotime($dateString,$timeNow);

Esta función tiene dos parámetros. $dateString es la cadena de fecha/hora que debe cumplir con PHP formato válido. Es un parámetro obligatorio. El otro parámetro $timeNow es opcional, es la marca de tiempo que se usa para calcular las fechas relativas. La hora actual ahora es el valor por defecto si se omite el segundo parámetro.

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

La fecha aquí está en el formato "d-m-Y". Sólo hemos pasado un único parámetro ya que convertirá la date en un Unix timestamp.

Producción :

The timestamp is 1587600000.

Usando la función strptime() para convertir una fecha en una marca de tiempo en PHP

Esta es otra función para convertir una fecha en un timestamp de Unix. No convierte la date directamente en un timestamp. Devuelve un array que dice los segundos, minutos, horas, y varios otros detalles. Podemos usar estos detalles para convertir una date en un timestamp.

strptime($dateString, $format);

Tiene dos parámetros obligatorios. $dateString es la cadena de la fecha y $format es el formato para analizar $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.";
?>

Producción :

The timestamp is 1587600000.

Después de generar el array, la función mktime() convierte la date en un timestamp.

La sintaxis de la función mktime() es

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

is_dst especifica si la fecha-hora es un horario de verano, pero se elimina de PHP 7.0.0.

Advertencia
Añadiremos 1 a $array['tm_mon'] y luego usaremos la suma como parámetro de month en mktime, porque $array['tm_mon'] empieza en 0, o en otras palabras, $array['tm_mon'] de enero es 0.

Usando la función getTimestamp() para convertir una fecha en una marca de tiempo en PHP

El método getTimestamp() del objeto DateTime es un método simple para convertir una fecha en una marca de tiempo. Tiene otra forma de representación date_timestamp_get() que es la representación de estilo procedural.

$datetimeObject->getTimestamp(); 

Crearemos un objeto Datetime para llamar a esta función. Este es el estilo orientado al objeto de llamar a una función.

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

El objeto $date de la clase Datetime ha llamado al método getTimestamp() para convertir la date en un timestamp de Unix.

Producción :

The timestamp is 1587600000.

Usando la función format() para convertir una fecha en un timestamp en PHP

También podemos usar el método format() de DateTime para convertir una date en un timestamp. Este método tiene otra representación date_format() que es la representación de estilo procedural de la función format().

$datetimeObject->format("U"); 

Para convertir una date a un timestamp, el formato que pasaremos como cadena es "U".

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

El objeto $dateObject de la clase Datetime ha llamado a la función format() para convertir la fecha en un timestamp de Unix.

Producción :

The timestamp is 1587600000.

Artículo relacionado - PHP DateTime

Artículo relacionado - PHP Timestamp