Aplicaciones Informaticas Web
   

Tutorial PHP >Funciones Fecha / Hora PHP

PHP: indica la primera versión de PHP que admita la función.

Función Descripción PHP
checkdate() Devuelve true si la fecha es valida y false si no es valida 3
date_default_timezone_get() Devuelve la zona horaria predeterminada 5
date_default_timezone_set() Establece la zona horaria predeterminada 5
date_sunrise() Devuelve el momento de la salida del sol para un determinado día y lugar 5
date_sunset() Devuelve el momento de la puesta de sol para un determinado día y lugar 5
date() Devuelve la fecha y hora 3
getdate() Devuelve una matriz que contiene información de fecha y hora para un timestamp de Unix 3
gettimeofday() Devuelve una matriz que contiene información en tiempo actual 3
gmdate() Formatos de un GMT / UTC de fecha / hora 3
gmmktime() Devuelve el timestamp de Unix para una fecha GMT 3
gmstrftime() Formatos de un GMT / UTC de fecha / hora en función de la configuración local 3
idate() Formatos de hora y fecha local como entero 5
localtime() Devuelve una matriz que contiene los componentes de tiempo de un timestamp de Unix 4
microtime() Devuelve el microsegundos para la hora actual 3
mktime() Devuelve el timestamp de Unix para una fecha 3
strftime() Formatos de hora y fecha de acuerdo a la configuración local 3
strptime() Analiza una fecha / hora generado con strftime () 5
strtotime() Procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX. 3
time() Devuelve la hora actual como un timestamp de Unix 3


Constantes Fecha / Hora PHP

PHP: indica la primera versión de PHP que apoya la constante.

Constante Descripción PHP
DATE_ATOM Átomo (por ejemplo: 2005-08-15T16: 13:03 +0000)
DATE_COOKIE Las cookies HTTP (ejemplo: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601 ISO-8601 (ejemplo: 2005-08-14T16: 13:03 +0000)
DATE_RFC822 RFC 822 (ejemplo: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850 RFC 850 (ejemplo: domingo, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036 RFC 1036 (ejemplo: domingo, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123 RFC 1123 (ejemplo: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822 RFC 2822 (Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSS RSS (Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C World Wide Web Consortium (ejemplo: 2005-08-14T16: 13:03 +0000)

Configuración en tiempo de ejecución

El comportamiento de la fecha / hora funciones se ve afectada por la configuración en php.ini.

Fecha / Hora opciones de configuración:

Nombre Predeterminado Descripción Modificable
date.default_latitude "31.7667" Especifica el valor predeterminado de latitud (disponible a partir de PHP 5). Esta opción es utilizada por date_sunrise () y date_sunset () PHP_INI_ALL
date.default_longitude "35.2333" Especifica el valor por defecto de longitud (disponible a partir de PHP 5). Esta opción es utilizada por date_sunrise () y date_sunset () PHP_INI_ALL
date.sunrise_zenith "90.83" "90,83" Especifica el valor por defecto del amanecer cenit (disponible a partir de PHP 5). Esta opción es utilizada por date_sunrise () y date_sunset () PHP_INI_ALL
date.sunset_zenith "90.83" "90,83" Especifica el valor por defecto atardecer cenit (disponible a partir de PHP 5). Esta opción es utilizada por date_sunrise () y date_sunset () PHP_INI_ALL
date.timezone "" Especifica la zona horaria predeterminada (disponible desde PHP 5.1) PHP_INI_ALL
FUNCION checkdate() = Devuelve true si la fecha es valida y false si no es valida
Sintaxis = checkdate(mes, dia, año )
Ejemplo de checkdate()
<?php
var_dump(checkdate(13,31,2000));
echo "<br>";
var_dump(checkdate(2,30,2003));
echo "<br>";
var_dump(checkdate(2,29,2004));
?>
El resultado seria
bool(false)
bool(false)
bool(true)
ir arriba
FUNCION date_default_timezone_get() = Devuelve la zona horaria predeterminada
Ejemplo de date_default_timezone_get()
<?php
echo "Tu zona horaria es:";
echo(date_default_timezone_get());
?>
El resultado fue
 Tu zona horaria es: Europe/Paris 
ir arriba
FUNCION date_default_timezone_set() = Establece la zona horaria predeterminada
Ejemplo de date_default_timezone_set()
<?php
echo(date_default_timezone_set("Europe/Paris"));
?>
El resultado seria
11
Ejemplo de date_default_timezone_set()
<?php
date_default_timezone_set ( 'America/New_York' );
echo("Hoy es dia".date(" dS"));
echo("del mes:".date("F"));
echo("del año:".date("Y"));
echo("y la hora es:".date("h:i:s A"));
?>
El resultado fue
   Hoy es dia  07th del mes: February del año: 2009 y la hora es: 04:30:56 AM
ir arriba
FUNCION date_sunrise() = Devuelve el momento de la salida del sol para un determinado día y lugar
SUNFUNCS_RET_STRING (devuelve el resultado como cadena. Por ejemplo, 16:46) , SUNFUNCS_RET_DOUBLE (devuelve el resultado como flotador. Por ejemplo, 16.78243132) , SUNFUNCS_RET_TIMESTAMP (devuelve el resultado como entero (de tiempo). Por ejemplo 1095034606)
Ejemplo de date_sunrise()
<?php
//Calculo para la salida del sol en Valencia , España
//Latitude: 39.28 North
//Longitude: 0.3West
//Zenith ~= 90
//offset: +1 GMT
echo("Fecha: " . date("D M d Y") . "<br />");
echo("Sale el sol a la hora: ");
echo(date_sunrise(time(),SUNFUNCS_RET_STRING,39.28,0.3,90,1));
?>
Elresultado fue
 Fecha: Sat Feb 07 2009
Sale el sol a la hora: 08:01 
ir arriba
FUNCION date_sunset() = Devuelve el momento de la puesta de sol para un determinado día y lugar
Ejemplo de date_sunset()
<?php
//Calculo para la puesta del sol en Valencia , España
//Latitude: 39.28North
//Longitude: 0.3West
//Zenith ~= 90
//offset: +1 GMT
echo("Fecha: " . date("D M d Y") . "<br />");
echo("Puesta del sol: ");
echo(date_sunset(time(),SUNFUNCS_RET_STRING,39.28,0.3,90,1));
?>
El resultado fue
 Fecha: Sat Feb 07 2009
Puesta del sol: 18:23 
ir arriba
FUNCION date() = Devuelve la fecha y hora
• d - El día del mes (de 01 a 31)
• D - Una representación textual de un día (tres letras)
• j - El día del mes sin ceros a la izquierda (1 a 31)
• l -(lowercase 'L') - Una representación textual completa de un día
• N - La ISO-8601 representación numérica de un día (1 de 7 para los lunes a domingo)
• S - sufijo ordinal La Inglés para el día del mes (2 caracteres primera, segunda, tercera o ª. Funciona bien con j)
• w - Una representación numérica del día (0 de 6 para el domingo a sábado)
• z - El día del año (de 0 a 365)
• W - La ISO-8601 número de semana del año (semanas a partir del lunes)
• F - Una representación textual completa de un mes (de enero a diciembre)
• m - Una representación numérica de un mes (de 01 a 12)
• M - Una representación textual corta de un mes (tres letras)
• n - Una representación numérica de un mes, sin ceros a la izquierda (1 a 12)
• t - El número de días del mes
• L - Si es un año bisiesto (1 si es un año bisiesto, 0 en caso contrario)
• o - La ISO-8601 el número de año
• Y - Una representación de cuatro dígitos de un año
• y - Una representación de dos dígitos de un año
• a - Minúsculas am o pm
• A - Mayúsculas AM o PM
• B - tiempo de Internet de Swatch (000 a 999)
• g - 12-horas de una hora (1 a 12)
• G - 24-horas de una hora (0 a 23)
• h - 12-horas de una hora (01 a 12)
• H - 24 horas de una hora (00 a 23)
• i - Minutos con ceros a la izquierda (00 a 59)
• s - Segundos, con ceros a la izquierda (00 a 59)
• e - El identificador de zona horaria (Ejemplos: UTC, Atlantic / Azores)
• I - (capital i)- Si la fecha es daylights ahorro en tiempo (1, si el horario de verano, 0 en caso contrario)
• O - Diferencia con la hora Greenwich (GMT) en horas (Ejemplo: 0100)
• T - Configuración de zona horaria de la máquina de PHP (Ejemplos: EST, MDT)
• Z - Zona horaria compensaron en segundos. El desplazamiento al oeste de UTC es negativo, y el desplazamiento al este de UTC es positivo (-43200 a 43200)
• c - La fecha de la norma ISO-8601 (por ejemplo 2004-02-12T15: 19:21 +00:00)
• r - El formato de fecha RFC 2822 (por ejemplo, jue, 21 dic 2000 16:01:07 +0200)
• U- Los segundos Unix desde la Epoca (1 de Enero 1970 00:00:00 GMT)
Ejemplo de date()
<?php
date_default_timezone_set ( 'Europe/Madrid' );
echo("Hoy es dia".date(" dS"));
echo("del mes:".date("F"));
echo("del año:".date("Y"));
echo("y la hora es:".date("h:i:s A"));
?>
El resultado fue
  Hoy es dia  07th del mes: February del año: 2009 y la hora es: 10:30:56 AM
ir arriba
FUNCION getdate() = Devuelve una matriz que contiene información de fecha y hora para un timestamp de Unix
• [seconds] - segundos
• [minutes] - minutos
• [hours] - horas
• [mday] - día del mes
• [wday] - día de la semana
• [mon] - numero de mes
• [year] - año
• [yday] - los días del año
• [weekday] - nombre del día de la semana
• [month] - nombre del mes
Ejemplo de getdate()
<?php
print_r(getdate());
?>
El resultado fue
 Array ( [seconds] => 56 [minutes] => 30 [hours] => 10 [mday] => 7 [wday] => 6 [mon] => 2 [year] => 2009 [yday] => 37 [weekday] => Saturday [month] => February [0] => 1233999056 )  
ir arriba
FUNCION gettimeofday() = devuelve una matriz que contiene información en tiempo actual.
• [sec] - segundos desde la época de Unix
• [usec] - microsegundos
• [minuteswest] - minutos al oeste de Greenwich
• [dsttime] - tipo de corrección dst
Ejemplo de gettimeofday()
<?php
echo(gettimeofday(true) . "<br />");
print_r(gettimeofday());
?>
El resultado fue
 1233999056.3359
Array ( [sec] => 1233999056 [usec] => 335893 [minuteswest] => -60 [dsttime] => 0 )  
ir arriba
FUNCION gmdate() = Formatos de un GMT / UTC de fecha / hora
Ejemplo de gmdate()
<?php
echo("Resultado con gmdate():<br />");
echo(gmdate("l") . "<br />");
echo(gmdate("l dS \of F Y h:i:s A"));
?>
El resultado fue
  Resultado con gmdate():
Saturday
Saturday 07th of February 2009 09:30:56 AM
ir arriba
FUNCION gmmktime() = Devuelve el timestamp de Unix para una fecha
gmmktime (hora, minuto, segundo, mes, día, año)
Ejemplo de gmmktime()
<?php
$cumpleaños = gmmktime(0,0,0,10,22,1963);
print($cumpleaños . "<br />");
print(date("M-d-Y",$cumpleaños));
?>
El resultado seria
 -195523200
Oct-22-1963 
ir arriba
FUNCION gmstrftime() = Formatos de un GMT / UTC de fecha / hora en función de la configuración local
• %a - nombre abreviado del día de la semana
• %A - nombre completo del día de la semana
• %b - nombre abreviado del mes
• %B - full month name % B - nombre del mes completo
•%c - fecha y hora preferida de representación
• %C - número de siglo (el año dividido por 100, rango de 00 a 99)
•%d - día del mes (01 a 31)
•%D - igual que% m /% d /% y
• %e - día del mes (1 a 31)
• %g - como% G, pero sin el siglo
• %G - 4 dígitos del año correspondiente al número de semana ISO (véase% V).
• %h - same as %b % h - Lo mismo que% b
•%H - hora, utilizando un reloj de 24 horas (00 a 23)
• %I - hora usando un reloj de 12 horas (01 a 12)
• %j - día del año (001 a 366)
• %m - mes (01 a 12)
• %M - minuto
• %n - caracter de nueva
• %p - am o pm según el valor de tiempo determinado
• %r - hora en notación am y pm
•%R - tiempo en notación de 24 horas
•%S - segundo
• %t - carácter de tabulación
• %T - hora actual, igual a% H:% M:% S
•%u - día de la semana como un número (1 a 7), de lunes = 1. Warning: In Sun Solaris Sunday=1 Advertencia: En Sun Solaris Domingo = 1
• %U - Número de la semana del año en curso, comenzando con el primer domingo como el primer día de la primera semana
• %V - La ISO 8601 Número de la semana del año en curso (01 a 53), donde la semana 1 es la primera semana que tenga al menos 4 días en el año en curso, y con el lunes como el primer día de la semana
• %W - Número de la semana del año en curso, comenzando con el primer lunes como el primer día de la primera semana
•%w - Día de la semana como decimal, Domingo = 0
•%x - representación preferida fecha sin la hora
• %X - representación de la hora sin la fecha
• %y - año sin el siglo (intervalo de 00 a 99)
•%Y - año incluyendo el siglo
• %Z o %z - zona horaria o nombre o la abreviatura
• %% - Un carácter literal%
Ejemplo de gmstrftime()
<?php
echo(strftime("%b %d %Y %X", mktime(20,0,0,10,22,63))."<br />");
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,10,22,63))."<br />");
echo(gmstrftime("Es el %a de %b %d, %Y, %X horario local: %Z",time()));
?>
El resultado fue
 Jan 01 1970 01:00:00
Jan 01 1970 00:00:00
Es el Sat de Feb 07, 2009, 09:41:00 horario local: Hora estandar romance
ir arriba
FUNCION idate() = Formatos de hora y fecha local como entero
• B - Swatch Beat / Hora Internet
• d - Día del mes
• h - hora (12 horas)
• H - horas (24 horas)
• i - Minutos
• I - 1 si regresa DST (horario de verano) está activada, 0 en caso contrario
• L - devuelve 1 de año bisiesto, 0 en caso contrario
• m - Mes número
• s - Segundos
• t - Días en el mes en curso
• U - Segundos desde la época Unix (1 de enero 1970 00:00:00 GMT)
• w - Día de la semana (domingo = 0)
• W - ISO-8601 número de semana del año (semana comienza el lunes)
• y - Año (1 o 2 dígitos)
• Y - Año (4 dígitos)
• z - día del año
• Z - Zona horaria compensar en segundos
Ejemplo de idate()
<?php
echo"La hora es:".(idate("H"))."<br>";
echo"los minutos son:".(idate("i"))."<br>";
echo"el mes tiene:".(idate("t"))."dias<br>";
echo("numero de mes:".idate("m"))."<br>";
echo "a&ntilde;o:".(idate("Y"));
?>
El resultado fue
 La hora es:10
los minutos son:41
el mes tiene:28dias
numero de mes:2
año:2009 
ir arriba
FUNCION localtime() = Devuelve una matriz que contiene los componentes de tiempo de un timestamp de Unix
Las claves de la matriz asociativa son los siguientes:
• [tm_sec] - segundo
• [tm_min] - minutos
• [tm_hour] - hora
• [tm_mday] - día del mes
• [tm_mon] - mes del año (enero = 0)
• [tm_year] - Años desde 1900
• [tm_wday] - Día de la semana (domingo = 0)
• [tm_yday] - Día del año
• [tm_isdst] - Es la hora de verano en vigor
Ejemplo de localtime()
<?php
print_r(localtime());
echo("<br />");
print_r(localtime(time(),true));
?>
El resultado fue
 Array ( [0] => 0 [1] => 41 [2] => 10 [3] => 7 [4] => 1 [5] => 109 [6] => 6 [7] => 37 [8] => 0 )
Array ( [tm_sec] => 0 [tm_min] => 41 [tm_hour] => 10 [tm_mday] => 7 [tm_mon] => 1 [tm_year] => 109 [tm_wday] => 6 [tm_yday] => 37 [tm_isdst] => 0 )  
ir arriba
FUNCION microtime() = Devuelve el microsegundos para la hora actual
Devuelve la cadena "microsec sec". El número de segundos desde la época Unix (0:00:00 del 1 de enero de 1970 GMT) . Tenga en cuenta que ambas partes se muestran en unidades de segundos.
Ejemplo de microtime()
<?php
echo(microtime());
?>
El resultado fue
 0.98935200 1233999660 
ir arriba
FUNCION mktime() = Devuelve el timestamp de Unix para una fecha
Esta función es útil para realizar cálculos con fechas y validación. Se calculará automáticamente el valor correcto de fuera de rango de entrada. mktime (hora, minuto, segundo, mes, día, año, is_dst)
Ejemplo de mktime()
<?php
echo(date("M-d-Y",mktime(0,0,0,12,40,2001))."<br />");
echo(date("M-d-Y",mktime(0,0,0,14,3,2001))."<br />");
echo(date("M-d-Y",mktime(0,0,0,21,11,2000))."<br />");
echo(date("M-d-Y",mktime(0,0,0,1,1,99))."<br />");
?>
El resultado seria
Jan-09-2002
Feb-03-2002
Sep-11-2001
Jan-01-1999
ir arriba
FUNCION strftime() = Formatos de hora y fecha de acuerdo a la configuración local
• %a - nombre abreviado del día de la semana
• %A - nombre completo del día de la semana
• %b - nombre abreviado del mes
• %B - full month name % B - nombre del mes completo
•%c - fecha y hora preferida de representación
• %C - número de siglo (el año dividido por 100, rango de 00 a 99)
•%d - día del mes (01 a 31)
•%D - igual que% m /% d /% y
• %e - día del mes (1 a 31)
• %g - como% G, pero sin el siglo
• %G - 4 dígitos del año correspondiente al número de semana ISO (véase% V).
• %h - same as %b % h - Lo mismo que% b
•%H - hora, utilizando un reloj de 24 horas (00 a 23)
• %I - hora usando un reloj de 12 horas (01 a 12)
• %j - día del año (001 a 366)
• %m - mes (01 a 12)
• %M - minuto
• %n - caracter de nueva
• %p - am o pm según el valor de tiempo determinado
• %r - hora en notación am y pm
•%R - tiempo en notación de 24 horas
•%S - segundo
• %t - carácter de tabulación
• %T - hora actual, igual a% H:% M:% S
•%u - día de la semana como un número (1 a 7), de lunes = 1. Warning: In Sun Solaris Sunday=1 Advertencia: En Sun Solaris Domingo = 1
• %U - Número de la semana del año en curso, comenzando con el primer domingo como el primer día de la primera semana
• %V - La ISO 8601 Número de la semana del año en curso (01 a 53), donde la semana 1 es la primera semana que tenga al menos 4 días en el año en curso, y con el lunes como el primer día de la semana
• %W - Número de la semana del año en curso, comenzando con el primer lunes como el primer día de la primera semana
•%w - Día de la semana como decimal, Domingo = 0
•%x - representación preferida fecha sin la hora
• %X - representación de la hora sin la fecha
• %y - año sin el siglo (intervalo de 00 a 99)
•%Y - año incluyendo el siglo
• %Z o %z - zona horaria o nombre o la abreviatura
• %% - Un carácter literal%
Ejemplo de strftime()
<?php
echo(strftime("%b %d %Y %X", mktime(20,0,0,12,31,00))."<br />");
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,1)));
?>
El resultado seria
Dec 31 2000 20:00:00
Dec 31 2001 19:00:00
ir arriba
FUNCION strptime() = Analiza una fecha / hora generado con strftime ()
Esta función no está implementada en plataformas Windows. Esta función devuelve un array con la fecha analizada.
• [tm_sec] - segundos (0-61)
• [tm_min] - minutos (0-59)
• [tm_hour] - hora (0-23)
• [tm_mday] - día del mes (1-31)
• [tm_mon] - meses desde enero de (0-11)
• [tm_year] - año desde 1900
• [tm_wday] - los días desde el domingo (0-6)
• [tm_yday] - día desde el 1 de enero (0-365)
• [unparsed] - parte de la fecha que no fue reconocido mediante el formato especificado, en su caso
Ejemplo de strptime()
<?php
$formato="%d/%m/%Y %H:%M:%S";
$strf=strftime($formato);
echo("$strf");
print_r(strptime($strf,$formato));
?>
El resultado fue
03/2/2009 13:23:44
Array ( [tm_sec] => 44 [tm_min] => 23 [tm_hour] => 13 [tm_mday] => 3 [tm_mon] => 2 [tm_year] => 109 [tm_wday] => 0 [tm_yday] => 276 [unparsed] => )  
ir arriba
FUNCION strtotime() = Procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.
Si se especifica el año en un formato de dos dígitos, los valores entre 0-69 se asignan a 2000-2069 y los valores entre 70-100 se asignan a 1970-2000. En PHP 5.1.0 esta función devuelve false en caso de fallo (en versiones anteriores devuelve -1).
Ejemplo de strtotime()
<?php
echo(strtotime("now") . "<br />");
echo(strtotime("11 September2001") . "<br />");
echo(strtotime("+2 hours") . "<br />");
echo(strtotime("+1 week") . "<br />");
echo(strtotime("+1 week 1 days 5 hours 1 seconds") . "<br />");
echo(strtotime("next Monday") . "<br />");
echo(strtotime("last Sunday"));
?>
EL resultado fue
 1233999921
1000159200
1234007121
1234604721
1234709122
1234134000
1233442800
ir arriba
FUNCION time() = Devuelve la hora actual como un timestamp de Unix
(el número de segundos desde el 1 de enero 1970 00:00:00 GMT). Esta función de llamada es idéntica a la llamada mktime () sin parámetros, o llamando a la fecha ( "U").
Ejemplo de time()
<?php
$tiempo=time();
echo($tiempo . "<br />");
echo(date("D F d Y",$tiempo));
?>
El resultado fue
 1233999921
Sat February 07 2009 
ir arriba