mktime
(PHP 4, PHP 5)
mktime — Obtener la marca de tiempo Unix de una fecha
Descripción
Devuelve la marca de tiempo Unix que corresponde a los argumentos dados. Esta marca de tiempo es un entero largo que contiene el número de segundos entre el Epoch Unix (Enero 1 1970 00:00:00 GMT) y la hora especificada.
Es posible dejar sin definir argumentos en orden de derecha a izquierda; cualquier argumento omitido será definido con el valor actual de acuerdo a la fecha y hora local.
Lista de parámetros
- hora
-
El número de la hora.
- minuto
-
El número del minuto.
- segundo
-
El número de segundos después del minuto.
- mes
-
El número del mes.
- dia
-
El número del dÃa.
- anyo
-
El número del año, puede ser un valor de dos o cuatro dÃgitos; los valores entre 0-69 se convierten a 2000-2069 y 70-100 a 1970-2000. En sistemas en donde time_t es un entero de 32bits con signo, como ocurre comúnmente hoy en dÃa, el rango válido para anyo es un valor 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).
- es_dst
-
Este parámetro puede definirse a 1 si la hora está dentro del tiempo de ahorro de luz diurna (DST), 0 si no lo es, o -1 (el valor predeterminado) si se desconoce si la hora está dentro del tiempo de ahorro de luz diurna o no. Si se desconoce, PHP intenta averiguarlo por sà solo. Esto puede causar resultados inesperados (pero no incorrectos). Algunas veces son inválidos si DST está habilitado en el sistema en el que está corriendo PHP o el valor de es_dst es 1. Si DST está habilitado en p.ej. 2:00, todas las horas entre las 2:00 y las 3:00 son inválidas y mktime() devuelve un valor indefinido (por lo general negativo). Algunos sistemas (p.ej. Solaris 8) habilita DST a media noche asà que la hora 0:30 del dÃa cuando DST está habilitado se evalúa como 23:30 del dÃa anterior.
Note: A partir de PHP 5.1.0, este parámetro se ha hecho obsoleto. Como resultado, las nuevas caracterÃsticas de manejo de zona horaria deberÃan usarse en su lugar.
Valores retornados
mktime() devuelve la marca de tiempo Unix de los argumentos dados. Si los argumentos son inválidos, la función devuelve FALSE (antes de PHP 5.1 devolvÃa -1).
Errors/Exceptions
Every call to a date/time function will generate a E_NOTICE if the time zone is not valid, and/or a E_STRICT message if using the system settings or the TZ environment variable. See also date_default_timezone_set()
Registro de cambios
Versión | Descripción |
---|---|
3.0.10 | Se agregó el parámetro es_dst |
5.1.0 | El parámetro es_dst se ha hecho obsoleto. Se ha hecho que la función devuelva FALSE en caso de error, en lugar de -1. Se corrigió la función para aceptar que el año, mes y dÃa sean pasados todos como cero. |
5.1.0 | Now issues the E_STRICT and E_NOTICE time zone errors. |
Ejemplos
Example#1 Ejemplo de mktime()
mktime() es útil cuando se realiza aritmética y validaciones de fechas, ya que calcula automáticamente el valor correcto para entradas fuera de rango. Por ejemplo, cada una de las siguientes lÃneas produce 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));
?>
Example#2 El último dÃa del mes siguiente
El último dÃa de cualquier mes dado puede ser expresado como el dÃa "0" del siguiente mes, no el dÃa -1. Los dos ejemplos siguientes producirán la cadena "El último dia en Feb 2000 es: 29".
<?php
$ultimodia = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("El ultimo dÃa en Feb 2000 es: %d", $ultimodia);
$ultimodia = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("El ultimo dÃa en Feb 2000 es: %d", $ultimodia);
?>
Notes
Antes de PHP 5.1.0, las marcas de tiempo negativas no eran soportadas bajo ninguna versión conocida de Windows asà como en otros sistemas. Por lo tanto, el rango de años válidos se limitaba a 1970 hasta 2038.