0Pricing
PHP Academy · Lección

Marcas de tiempo Unix y date()

Obtenga la hora actual como una marca de tiempo Unix y dele formato con date().

Marcas de tiempo Unix y date() es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

El tiempo en PHP

PHP representa el tiempo como una marca de tiempo Unix: el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC (la época Unix). Funciones principales:

  • time() — marca de tiempo Unix actual
  • date($format, $timestamp) — da formato a una marca de tiempo
  • mktime() — crea una marca de tiempo a partir de las partes de una fecha

time()

Obtenga la marca de tiempo Unix actual:

<?php
$now = time();
echo $now;           // e.g. 1716800000
echo gettype($now);  // integer

// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;

echo date('Y-m-d', $tomorrow);  // tomorrow's date

Caracteres de formato de date()

Caracteres de formato habituales para date():

  • Y — año de 4 dígitos: 2024
  • m — mes con cero inicial: 01–12
  • d — día con cero inicial: 01–31
  • H — hora en formato de 24 horas con cero inicial
  • i — minutos con cero inicial
  • s — segundos
  • D — nombre abreviado del día: Mon
  • N — día de la semana según ISO: 1=Mon, 7=Sun

Dar formato a fechas

Utilice date() para dar formato a las marcas de tiempo:

<?php
$ts = time();

echo date('Y-m-d', $ts);           // 2024-05-27
echo date('d/m/Y', $ts);           // 27/05/2024
echo date('D, d M Y H:i:s', $ts);  // Mon, 27 May 2024 14:30:00
echo date('c', $ts);               // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts);               // Unix timestamp (same as time())

mktime()

Cree una marca de tiempo a partir de componentes específicos de fecha y hora:

<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024);  // Christmas 2024 midnight
echo date('Y-m-d', $ts);  // 2024-12-25

// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024);  // day 0 = last day of Feb
echo date('Y-m-d', $lastDay);  // 2024-02-29 (leap year)

strtotime()

strtotime() convierte una cadena de fecha legible para las personas en una marca de tiempo:

<?php
echo strtotime('2024-12-25');       // timestamp
echo strtotime('next Monday');      // next Monday's timestamp
echo strtotime('+1 week');          // 7 days from now
echo strtotime('last day of this month');  // end of month
echo strtotime('2024-01-01 +3 months');   // April 1, 2024

Aritmética de fechas con strtotime

Calcule fechas relativas mediante las expresiones relativas de strtotime:

<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');

echo date('Y-m-d', $oneYearLater);  // 2025-01-15
echo date('Y-m-d', $trialEnd);      // 14 days from today

// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";

Marcas de tiempo y bases de datos

Almacene las fechas en la base de datos como cadenas ISO o marcas de tiempo Unix:

<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s');  // '2024-05-27 14:30:00'

// Store as Unix timestamp (fast integer comparison):
$created_ts = time();  // 1716800000

// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);

date_create y date_format

Alternativas orientadas a objetos a date() y strtotime():

<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y');  // Mon, 27 May 2024

date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d');  // 2024-06-26

// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');

checkdate()

Valide si una fecha es real con checkdate():

<?php
var_dump(checkdate(2, 29, 2024));  // true (leap year)
var_dump(checkdate(2, 29, 2023));  // false (not leap year)
var_dump(checkdate(13, 1, 2024));  // false (no month 13)
var_dump(checkdate(1, 31, 2024));  // true

Microtime para pruebas de rendimiento

Utilice microtime(true) para medir el tiempo de ejecución con precisión inferior a un segundo:

<?php
$start = microtime(true);

// Simulate work
for ($i = 0; $i < 100000; $i++) {}

$end = microtime(true);
$duration = ($end - $start) * 1000;  // milliseconds
echo sprintf('Took %.2f ms', $duration);

Comprobación rápida

¿Qué devuelve la función time() de PHP?

Repaso: marcas de tiempo Unix y date()

Aspectos clave:

  • time() — marca de tiempo Unix actual
  • date($format, $ts) — da formato a cualquier marca de tiempo
  • mktime() — construye una marca de tiempo a partir de las partes de una fecha
  • strtotime() — analiza fechas legibles para las personas
  • Utilice el formato ISO 8601 para almacenar datos en la base de datos
  • microtime(true) para medir el tiempo con alta resolución

Preguntas frecuentes

¿La lección «Marcas de tiempo Unix y date()» es gratis?

Sí — el texto completo de «Marcas de tiempo Unix y date()» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Marcas de tiempo Unix y date()»?

Obtenga la hora actual como una marca de tiempo Unix y dele formato con date(). Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Marcas de tiempo Unix y date()»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Marcas de tiempo Unix y date()
  2. La clase DateTime
  3. Aritmética de fechas con DateInterval
  4. Zonas horarias en PHP
← Volver a PHP Academy