PHP proporciona varias funciones para trabajar con fechas y horas. La función más básica
es date()
, que permite formatear una fecha según nuestras necesidades.
<?php
// Obtener la fecha actual
echo date("Y-m-d"); // Formato: AAAA-MM-DD
echo "<br>";
// Obtener la hora actual
echo date("H:i:s"); // Formato: HH:MM:SS
echo "<br>";
// Fecha y hora completa
echo date("Y-m-d H:i:s"); // Formato: AAAA-MM-DD HH:MM:SS
echo "<br>";
// Formato personalizado
echo date("l, j \d\e F \d\e Y"); // Ejemplo: Lunes, 9 de Mayo de 2025
?>
Formato | Descripción | Ejemplo |
---|---|---|
Y |
Año con 4 dígitos | 2025 |
m |
Mes con 2 dígitos | 05 |
d |
Día con 2 dígitos | 09 |
H |
Hora formato 24h | 13 |
i |
Minutos | 30 |
s |
Segundos | 45 |
Un timestamp es un número entero que representa los segundos transcurridos desde el 1 de enero de 1970 (época Unix). PHP proporciona varias funciones para trabajar con timestamps.
<?php
// Obtener el timestamp actual
$timestamp_actual = time();
echo "Timestamp actual: " . $timestamp_actual;
echo "<br>";
// Convertir una fecha a timestamp
$fecha_string = "2025-05-09";
$timestamp = strtotime($fecha_string);
echo "Timestamp de $fecha_string: " . $timestamp;
echo "<br>";
// Operaciones con fechas
echo "En una semana: " . date("Y-m-d", strtotime("+1 week"));
echo "<br>";
echo "En dos meses: " . date("Y-m-d", strtotime("+2 months"));
?>
PHP proporciona la clase DateTime para un manejo más orientado a objetos de las fechas. Esta clase ofrece métodos más potentes y flexibles para trabajar con fechas y horas.
<?php
// Crear objeto DateTime
$fecha = new DateTime();
echo $fecha->format('Y-m-d H:i:s');
echo "<br>";
// Crear fecha específica
$fecha_especifica = new DateTime('2025-05-09');
echo $fecha_especifica->format('Y-m-d');
echo "<br>";
// Modificar fecha
$fecha->modify('+1 month');
echo "En un mes: " . $fecha->format('Y-m-d');
echo "<br>";
// Diferencia entre fechas
$fecha1 = new DateTime('2025-01-01');
$fecha2 = new DateTime('2025-12-31');
$diferencia = $fecha1->diff($fecha2);
echo "Diferencia: " . $diferencia->days . " días";
?>
El manejo de zonas horarias es crucial en aplicaciones que operan globalmente. PHP permite trabajar con diferentes zonas horarias usando la clase DateTimeZone.
<?php
// Establecer zona horaria
date_default_timezone_set('America/Mexico_City');
// Crear objeto DateTime con zona horaria
$fecha_cdmx = new DateTime('now', new DateTimeZone('America/Mexico_City'));
echo "CDMX: " . $fecha_cdmx->format('Y-m-d H:i:s');
echo "<br>";
// Cambiar zona horaria
$fecha_madrid = clone $fecha_cdmx;
$fecha_madrid->setTimezone(new DateTimeZone('Europe/Madrid'));
echo "Madrid: " . $fecha_madrid->format('Y-m-d H:i:s');
echo "<br>";
// Listar zonas horarias disponibles
$zonas = DateTimeZone::listIdentifiers(DateTimeZone::AMERICA);
echo "Zonas horarias de América:<br>";
foreach ($zonas as $zona) {
echo $zona . "<br>";
}
?>
Crea un calendario de eventos que:
Utiliza la clase DateTime para manejar las fechas y DateTimeZone para las zonas horarias. Implementa una función de ordenamiento basada en los timestamps de los eventos.