(PHP 4, PHP 5)
mktime — Obtener la marca de tiempo Unix de una fecha
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.
El número de la hora.
El número del minuto.
El número de segundos después del minuto.
El número del mes.
El número del día.
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).
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.
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).
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()
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. |
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);
?>
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.