Función PHP de fecha() y hora: ¿Cómo obtener la marca de tiempo actual?

⚡ Resumen inteligente

La función date() de PHP formatea las marcas de tiempo en fechas y horas legibles. Este tutorial explica la sintaxis de fecha, la marca de tiempo Unix, cómo listar y configurar zonas horarias, la función mktime para construir marcas de tiempo y una referencia completa de los caracteres de formato de hora, día, mes y año.

  • ???? ¿Qué hace date()? La función de fecha convierte una marca de tiempo en una cadena formateada utilizando caracteres como Y, m y d para año, mes y día.
  • 🇧🇷 Marca de tiempo Unix: Una marca de tiempo es el número de segundos transcurridos desde el 1 de enero de 1970 GMT, y time() devuelve el valor actual.
  • 🌍 Zonas horarias: date_default_timezone_set cambia la zona horaria activa, y DateTimeZone::listIdentifiers enumera todas las zonas admitidas.
  • 🔧 mktime: La función mktime crea una marca de tiempo a partir de una hora, minuto, segundo, mes, día y año específicos.
  • 🔤 Caracteres de formato: Las letras individuales controlan el resultado; por ejemplo, la H para la hora en formato de 24 horas, la l para el nombre del día de la semana y la F para el nombre del mes.
  • 📐 Tablas de referencia: Las tablas agrupadas enumeran los caracteres de formato de hora, día, mes y año, con un ejemplo ejecutable para cada uno.
  • 🤖 Asistencia de IA: Las herramientas de IA pueden generar código de formato de fecha y de diferencia, y ayudar a resolver errores confusos relacionados con las zonas horarias.

Función PHP date ()

Función PHP date ()

La función `date` de PHP es una función integrada que simplifica el trabajo con fechas. Se utiliza para formatear una fecha u hora en un formato legible. Puede usarse para mostrar la fecha de publicación de un artículo o registrar la última actualización de datos en una base de datos.

Sintaxis y ejemplo de fecha de PHP

La función date() de PHP tiene la siguiente sintaxis básica.

<?php
date(format,[timestamp]);
?>

AQUÍ,

  • “date(…)” es la función que devuelve la marca de tiempo actual formateada en PHP en el servidor.
  • “formato” es el formato general que queremos que tenga nuestra salida, por ejemplo:
    • “Ymd” para el formato de fecha PHP AAAA-MM-DD
    • “Y” para mostrar el año actual
  • “[timestamp]” es opcional. Si no se proporciona ninguna marca de tiempo, PHP utilizará la fecha y hora actuales del servidor.

Veamos un ejemplo básico que muestra el año actual.

<?php

echo date("Y");

?>

Salida:

2026

¿Qué es una marca de tiempo?

Una marca de tiempo en PHP es un valor numérico en segundos entre la hora actual y el valor en 1st Enero de 1970 00:00:00 Hora Media de Greenwich (GMT).

El valor devuelto por la función de hora depende de la zona horaria predeterminada.

La zona horaria predeterminada se configura en el archivo php.ini. También se puede configurar mediante programación utilizando la función date_default_timezone_set.

El siguiente código muestra la marca de tiempo actual.

<?php

echo time();

?>

Suponiendo que guardó el archivo timestamp.php en la carpeta phptuts, navegue hasta el URL http://localhost/phptuts/timestamp.php

marca de hora

Nota: el valor de la marca de tiempo no es constante. Cambia cada segundo.

Obtener una lista de identificadores de zona horaria disponibles

Antes de ver cómo configurar la zona horaria predeterminada mediante programación, veamos cómo obtener una lista de las zonas horarias compatibles.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

AQUÍ,

  • La instrucción “$timezone_identifiers = DateTimeZone::listIdentifiers();” llama al método estático listIdentifiers de la clase integrada DateTimeZone. El método listIdentifiers devuelve una lista de identificadores asignados a la variable $timezone_identifiers.
  • “foreach{…}” itera a través del array e imprime los valores.

Suponiendo que guardó el archivo list_time_zones.php en la carpeta phptuts, navegue hasta la URL http://localhost/phptuts/list_time_zones.php

Identificadores de zona horaria

PHP establece la zona horaria mediante programación

La función date_default_timezone_set le permite configurar la zona horaria predeterminada desde un script PHP.

La zona horaria establecida se utilizará entonces para todas las fechas. funciones PHP en tus scripts. Tiene la siguiente sintaxis.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

AQUÍ,

  • “date_default_timezone_set()” es la función que establece la zona horaria predeterminada
  • “string $timezone_identifier” es el identificador de zona horaria

El siguiente script muestra la hora según la zona horaria predeterminada configurada en php.ini. A continuación, cambia la zona horaria predeterminada a Asia/Calcuta y vuelve a mostrar la hora.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Suponiendo que haya guardado el archivo set_time_zone.php en la carpeta phptuts, navegue hasta el URL http://localhost/phptuts/set_time_zone.php

PHP establece la zona horaria mediante programación

Función PHP Mktime

La función mktime devuelve la marca de tiempo en un Unix formato.

Tiene la siguiente sintaxis.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

AQUÍ,

  • “mktime(…)” es la función de creación de marca de tiempo de PHP
  • “hora” es opcional; es el número de la hora.
  • “minuto” es opcional; es el número de minutos.
  • “segundo” es opcional; es el número de segundos.
  • “mes” es opcional; es el número del mes.
  • “día” es opcional; es el número del día.
  • “año” es opcional; es el número del año.
  • El parámetro “is_dst” es opcional y se utiliza para determinar el horario de verano (DST). El valor 1 indica que hay horario de verano, 0 que no lo hay y -1 si se desconoce.

Veamos ahora un ejemplo que crea una marca de tiempo para la fecha 13/10/2025 utilizando la función mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

AQUÍ,

  • “0,0,0” representa la hora, los minutos y los segundos respectivamente.
  • “10” es el mes del año
  • “13” es el día del mes
  • “2025” es el año

Salida:

1760328000

Referencia del formato de fecha de PHP

Las tablas que aparecen a continuación muestran los caracteres de formato comunes que se utilizan al trabajar con las funciones de fecha de PHP.

Parámetros de tiempo

Parámetro Mareas Ideales para Lecciones Ejemplo
"R" Devuelve la fecha y hora completas.
<?php
echo date("r");
?>
“a”, “A” Devuelve si la hora actual es am o pm, AM o PM respectivamente
<?php
echo date("a");
echo date("A");
?>
“g”, “G” Devuelve la hora sin ceros a la izquierda [1 a 12], [0 a 23] respectivamente
<?php
echo date("g");
echo date("G");
?>
"S.S" Devuelve la hora con ceros iniciales [01 a 12], [00 a 23] respectivamente.
<?php
echo date("h");
echo date("H");
?>
"es" Devuelve los minutos/segundos con ceros a la izquierda [00 a 59]
<?php
echo date("i");
echo date("s");
?>

Parámetros del día

Parámetro Mareas Ideales para Lecciones Ejemplo
"D" Devuelve el día del mes con ceros a la izquierda [01 a 31]
<?php
echo date("d");
?>
"j" Devuelve el día del mes sin ceros a la izquierda [1 a 31]
<?php
echo date("j");
?>
"RE" Devuelve las tres primeras letras del nombre del día [de domingo a sábado].
<?php
echo date("D");
?>
"L" Devuelve el nombre del día de la semana [de domingo a sábado].
<?php
echo date("l");
?>
"w" Devuelve el día de la semana sin ceros iniciales [0 a 6]; el domingo se representa con cero (0) y el sábado con seis (6).
<?php
echo date("w");
?>
"Z" Devuelve el día del año sin espacios iniciales [0 a 365]
<?php
echo date("z");
?>

Parámetros del mes

Parámetro Mareas Ideales para Lecciones Ejemplo
"M" Devuelve el número del mes con ceros a la izquierda [01 a 12]
<?php
echo date("m");
?>
"norte" Devuelve el número del mes sin ceros a la izquierda [1 a 12]
<?php
echo date("n");
?>
"M" Devuelve las primeras 3 letras del nombre del mes [enero a diciembre]
<?php
echo date("M");
?>
"F" Devuelve el nombre del mes [enero a diciembre]
<?php
echo date("F");
?>
"T" Devuelve el número de días de un mes [28 a 31]
<?php
echo date("t");
?>

Parámetros del año

Parámetro Mareas Ideales para Lecciones Ejemplo
"L" Devuelve 1 si es un año bisiesto y 0 si no lo es.
<?php
echo date("L");
?>
"Y" Devuelve el formato de año de cuatro dígitos
<?php
echo date("Y");
?>
"Y" Devuelve el año en formato de dos dígitos (00 a 99).
<?php
echo date("y");
?>

Preguntas Frecuentes

La función `date()` es una función procedimental sencilla que formatea una marca de tiempo. La clase `DateTime` es orientada a objetos y admite operaciones aritméticas, comparaciones, zonas horarias e inmutabilidad, lo que la hace más adecuada para lógica de fechas compleja en aplicaciones de mayor tamaño.

Utilice strtotime(), que lee formatos como '2025-10-13' o 'next'. Mondayy devuelve una marca de tiempo Unix. Para un análisis estricto de un formato conocido, DateTime::createFromFormat es más seguro porque falla claramente ante una entrada no válida.

Crea dos objetos DateTime y llama a diff(), que devuelve un DateInterval. A continuación, puedes leer días, meses o años; por ejemplo, $start->diff($end)->days para obtener el número total de días entre las fechas.

Sí. Describe el formato de entrada y salida, y la IA puede generar código date(), DateTime o strtotime, incluyendo la adición de intervalos o la conversión de zonas horarias. Pruébalo con casos especiales como años bisiestos y fin de mes.

Sí. La IA puede detectar una llamada faltante a date_default_timezone_set, una discrepancia entre la zona horaria del servidor y la de la pantalla, o problemas con el horario de verano, y luego recomendar el uso de DateTime con zonas horarias explícitas para que el comportamiento sea predecible.

Resumir este post con: