W3docs

idate()

idate() es una función integrada de PHP que extrae información específica de un timestamp Unix y la devuelve como un entero.

idate() es una función integrada de PHP que extrae un único dato de fecha u hora de un timestamp Unix y lo devuelve como un entero. El nombre significa integer date (fecha entera). A diferencia de date(), que construye una cadena formateada a partir de uno o más caracteres de formato, idate() acepta exactamente un carácter de formato y te devuelve un número simple con el que puedes hacer operaciones matemáticas de inmediato.

Esta página cubre la sintaxis, los caracteres de formato que entiende idate(), ejemplos ejecutables, cómo difiere de date() y los errores comunes a tener en cuenta.

Sintaxis

idate(string $format, ?int $timestamp = null): int|false
  • $format — un único carácter de formato (consulta la tabla más abajo). Pasar una cadena de más de un carácter genera una advertencia y devuelve false.
  • $timestamp — un timestamp Unix opcional (segundos desde el 1 de enero de 1970, UTC). Si se omite, se utiliza la fecha y hora actuales.

Devuelve un entero o false en caso de error.

Caracteres de formato

idate() admite un subconjunto de los caracteres de formato de date() — solo aquellos que producen un valor numérico.

CódigoDevuelveEjemplo
YAño de cuatro dígitos2023
yAño de dos dígitos23
mNúmero de mes (1–12)3
nNúmero de mes (igual que m)3
dDía del mes (1–31)5
jDía del mes (igual que d)5
HHora, formato 24 horas (0–23)17
GHora, formato 24 horas (igual que H)17
iMinutos (0–59)30
sSegundos (0–59)45
NDía de la semana ISO (1 = lunes … 7 = domingo)7
wDía de la semana (0 = domingo … 6 = sábado)0
zDía del año, base cero (0–365)63
tNúmero de días en el mes dado31
L¿Año bisiesto? 1 si sí, 0 si no0
UEl propio timestamp Unix1678037445

Importante: idate() devuelve un número, no una cadena con ceros a la izquierda. idate('m') para marzo devuelve el entero 3, no "03". Si necesitas un cero inicial, usa date('m') en su lugar, que devuelve la cadena "03".

Ejemplo básico

<?php
// March 5, 2023, 17:30:45
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

echo idate('Y', $timestamp) . "\n"; // 2023
echo idate('m', $timestamp) . "\n"; // 3
echo idate('d', $timestamp) . "\n"; // 5
echo idate('H', $timestamp) . "\n"; // 17
echo idate('i', $timestamp) . "\n"; // 30
echo idate('s', $timestamp) . "\n"; // 45

Como el valor de retorno es un entero, puedes usarlo directamente en operaciones aritméticas y comparaciones:

<?php
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

if (idate('N', $timestamp) >= 6) {
    echo "It's the weekend.\n";
} else {
    echo "It's a weekday.\n";
}

// March 5, 2023 was a Sunday (N = 7), so this prints:
// It's the weekend.

Usar la hora actual

Cuando omites el segundo argumento, idate() lee la fecha y hora actuales, lo que lo hace muy útil para comprobaciones rápidas:

<?php
$currentYear = idate('Y');

echo "The current year is {$currentYear}.\n";

// Detect a leap year
echo idate('L') ? "This year is a leap year.\n" : "This year is not a leap year.\n";

idate() vs. date()

idate()date()
Longitud del formatoSolo un carácterCualquier número de caracteres
Tipo de retornoint (o false)string
Ceros a la izquierdaNunca (3)Sí, donde está definido ("03")
Caso de usoNecesitar un número para cálculos/comparacionesNecesitar una cadena formateada y legible
<?php
$timestamp = mktime(9, 5, 0, 4, 2, 2024);

echo date('m', $timestamp) . "\n";  // "04"  (string, zero-padded)
echo idate('m', $timestamp) . "\n"; // 4     (integer, no padding)

Cuándo usarlo

Recurre a idate() cuando necesites un componente de fecha/hora como número — por ejemplo para construir un contador, comparar dos valores, indexar en un array, o utilizar el resultado en cálculos posteriores. Si tu objetivo es mostrar una fecha u hora con formato, usa date() (o strtotime() para convertir texto en un timestamp primero).

Errores comunes

  • Sin formatos de múltiples caracteres. idate('Y-m-d') no funciona — genera una advertencia y devuelve false. Llama a idate() una vez por componente, o usa date().
  • Sin ceros a la izquierda. No confíes en idate() para obtener salida de ancho fijo; siempre elimina el relleno.
  • false parece 0. En caso de error, idate() devuelve false, que es igual de forma laxa a 0. Usa una comprobación estricta (=== false) si un 0 real (como un domingo de w) es un resultado válido.

Funciones relacionadas

  • date() — formatea un timestamp como cadena.
  • mktime() — construye un timestamp Unix a partir de partes de fecha/hora.
  • strtotime() — convierte una cadena de fecha en inglés en un timestamp.
  • time() — obtiene el timestamp Unix actual.

Práctica

Práctica

Práctica
¿Qué hace la función idate() en PHP?
¿Qué hace la función idate() en PHP?
Was this page helpful?