mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktimeObtener la marca de tiempo Unix de una fecha

Descripción

mktime(
    int $hour,
    ?int $minute = null,
    ?int $second = null,
    ?int $month = null,
    ?int $day = null,
    ?int $year = null
): int|false

Devuelve la marca de tiempo Unix correspondiente a los argumentos dados. Esta marca de tiempo es un entero que contiene el número de segundos entre la Época Unix (1 de Enero del 1970 00:00:00 GMT) y el instante especificado.

Cualquier parámetro opcional omitido o a null se establecerá al valor actual según la fecha y hora locales.

Advertencia

Tenga en cuenta que el orden de los argumentos es extraño: month, day, year, y no en el orden más natural de year, month, day.

Llamar a mktime() sin argumentos no está soportado, y devolverá un ArgumentCountError. Puede usar time() para obtener la marca de tiempo actual.

Parámetros

hour

El número de la hora relativa al inicio del día determinado por month, day y year. Los valores negativos referencian la hora antes de la media noche del día en cuestión. Los valores mayores que 23 referencian la hora apropiada en el/los día/s siguiente/s.

minute

El número de los minutos relativos al inicio de hour. Los valores negativos referencian el minuto en la hora previa. Los valores mayores que 59 referencian el minuto apropiado en la/s hora/s siguiente/s.

second

El número de segundos relativos al inicio de minute. Los valores negativos referencian el segundo en el minuto previo. Los valores mayores que 59 referencian el segundo apropiado en el/los minuto/s siguiente/s.

month

El número del mes relativo al final del año previo. Los valores de 1 a 12 referencian los meses del calendario normal del año en cuestión. Los valores menores que 1 (incluyendo valores negativos) referencian los meses del año previo en orden inverso, por lo que 0 es Diciembre, -1 es Noviembre, etc. Los valores mayores que 12 referencian el mes apropiado en el/los año/s siguiente/s.

day

El número del día relativo al final del mes previo. Los valores del 1 al 28, 29, 30 o 31 (dependiendo del mes) referencian los días normales del mes relevante. Los valores menores que 1 (incluyendo valores negativos) referencian los días del mes previo por lo que 0 es el último día del mes previo, -1 es el día anterior a ese, etc. Los valores mayores que el número de días del mes relevante referencian el día apropiado en el/los mes/es siguiente/s.

year

El número del año, puede ser un valor de dos o cuatro dígitos, con valores entre 0-69 mapeados a 2000-2069 y 70-100 a 1970-2000. En sistemas donde time_t es un entero con signo de 32 bits, como es lo más normal hoy en día, el rango válido para year es entre 1901 y 2038. Sin embargo, antes de PHP 5.1.0 este rango estaba limitado desde 1970 a 2038 en algunos sistemas (p.ej. Windows).

Valores devueltos

mktime() devuelve la marca de tiempo Unix de los argumentos dados, o false si la marca de tiempo no cabe en un entero PHP.

Historial de cambios

Versión Descripción
8.0.0 hour ya no es opcional. Si necesita una marca de tiempo unix, utilice time().
8.0.0 minute, second, month, day y year ahora pueden ser nulos.

Ejemplos

Ejemplo #1 Ejemplo básico de mktime()

<?php
// Establece la zona horaria a utilizar.
date_default_timezone_set('UTC');

// Imprime: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Imprime algo como: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Ejemplo #2 Ejemplo mktime()

mktime() es útil para hacer cálculos con fechas y validaciones, ya que calculará automáticamente los valores correctos para entradas fuera de rango. Por ejemplo, cada una de las siguientes líneas devuelve la cadena: "Jan-01-1998".

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo
date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo
date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo
date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Ejemplo #3 El último día del mes

El último día de cualquier mes dado se puede expresar como el día "0" del mes siguiente, no el día -1. Los dos ejemplos siguientes producirán la cadena "El último día en Feb 2000 es: 29".

<?php

$ultimoDia
= mktime(0, 0, 0, 3, 0, 2000);
echo
'Last day in Feb 2000 is: ', date('d', $ultimoDia);

$ultimoDia = mktime(0, 0, 0, 4, -31, 2000);
echo
'Last day in Feb 2000 is: ', date('d', $ultimoDia);

?>

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top