(PHP 4, PHP 5)
mktime — Obtener la fecha Unix de una fecha
Devuelve la fecha Unix correspondiente a los argumentos dados. Esta marca de tiempo es un integer que contiene el número de segundos entre la Época Unix (1 de Enero del 1970 00:00:00 GMT) y el momento especificado.
Los argumentos pueden estar expuestos de derecha a izquierda; cualquier argumento que se omita será establecido al valor actual según la fecha y hora locales.
Note:
Desde PHP 5.1, cuando se hace la llamada sin argumentos, mktime() lanza un aviso E_STRICT: use la función time() en su lugar.
El número de la hora.
El número de los minutos.
El número de segundos pasados el 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, 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 bit, 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).
Este parámetro se puede establecer a 1 si el momento está durante el horario de verano (DST), 0 si no, o -1 (por defecto) si no se sabe si el momento está durante el horario de verano. Si no se sabe, PHP lo intentará calcular por sí mismo. Esto puede causar resultados inesperados (pero no incorrectos). Algunas veces no son válidos si DST está habilitado en el sistema donde se ejecuta PHP o is_dst está establecido a 1. Si DST está habilitado a, p.ej. 2:00, todas las horas entre las 2:00 y las 3:00 no son válidas y mktime() devuelve un valor indefinido (normalmente negativo). Algunos sistemas (p.ej. Solaris 8) habilitan DST a la medianoche por lo que la hora 0:30 del día, cuando DST está habilitado, es evaluada como 23:30 del día anterior.
Note:
A partir de PHP 5.1.0, este parámetro se volvió obsoloto. Como resultado, se pueden usar las nuevas características de manejo de zonas horarias en su luguar.
mktime() devuelve la fecha Unix de los argumentos dados. Si los argumentos no son válidos, la función devuelve FALSE (antes de PHP 5.1 se devolvía -1).
Cada vez que se llame a la función date/time se generará un E_NOTICE si la zona horaria no es válida, y/o un mensaje E_STRICT o E_WARNING si se usa la configuración del sistema o la variable global TZ. Vea también date_default_timezone_set()
Versión | Descripción |
---|---|
5.3.0 | mktime() ahora lanza un aviso E_DEPRECATED si el parámetro is_dst se usa. |
5.1.0 | El parámetro is_dst se volvió obsoleto. Hacía que la funcion devolviese FALSE si se prudujo un error, en vez de -1. Arreglada la función para que acepte el año, mes y día pasados como cero. |
5.1.0 | Cuando se hace la llamada sin argumento, mktime() lanza un aviso E_STRICT. Use la función time() en su lugar. |
5.1.0 | Ahora muestra E_STRICT y E_NOTICE cuando ocurren errores con zonas horarias. |
Example #1 Ejemplo básico de mktime()
<?php
// Establecer la zona horaria predeterminada a usar. Disponible desde PHP 5.1
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));
?>
Example #2 Ejemplo de mktime()
mktime() es útil para hacer que las fechas sean válidas aritméticamente, ya que calculará automáticamente el valor correcto para las entradas que estén fuera de rango. Por ejemplo, cada una de las líneas siguientes producirá 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 #3 El último día del mes siguiente
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
$último_día = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("El último día en Feb 2000 es: %d", $último_día);
$último_día = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("El último día en Feb 2000 es: %d", $último_día);
?>
Antes de PHP 5.1.0, las marcas de tiempo negativas no estaban soportadas bajo ninguna versión de Windows conocida, y tampoco en otros sistemas. Por lo tanto el rango de años válidos estaba limitado desde 1970 hasta 2038.