Inicio arrow Artículos arrow php arrow Manual PHP+MySQL (VII - Algunas funciones útiles)
Menú Principal
Lo más leído
Consigue Firefox
Usuarios
993 registrados
1 hoy
5 esta semana
138 este mes
Último: gabity...
Formulario de acceso



... Regenerar clave
... Registro
Manual PHP+MySQL (VII - Algunas funciones útiles) Imprimir E-Mail
lunes, 21 de agosto de 2006

Por sus características especiales, su uso continuado y la labor que tienen de potenciar el código de una página web, hay una serie de funciones en PHP que merecen un capítulo a parte de los demás (dejando a un lado las funciones específicas de MySQL, que estudiaremos más adelante). Este capítulo está dedicado a las funciones de fecha y hora y a las funciones de inclusión include() y require().


Funciones de fecha y hora

  • checkdate (mes, día, año)

Comprueba si una fecha determinada es válida. Devuelve TRUE si es válida y FALSE si no lo es. Una fecha será considerada válida si:

  • el año está entre 0 y 32767, ambos incluidos
  • el mes está entre 1 y 12, ambos incluidos
  • el día está en el rango permitido para el mes dado. Se tienen en consideración los años bisiestos.

<?PHP
if (checkdate(31, 2, 2000)) {
    echo "La fecha es correcta";
    } else {
    echo "La fecha es incorrecta";
}
?>

  • date (format [, timestamp])

Devuelve una cadena formateada de acuerdo con la cadena de formato dada, utilizando el valor de timestamp o la hora local actual si no existe dicho parámetro. Los caracteres reconocidos en la cadena de formato son los siguientes:

a "am" o "pm"
A "AM" o "PM"
d día del mes, dos dígitos con cero a la izquierda; es decir, de "01" a "31"
D día de la semana, en texto, con tres letras; por ejemplo, "Fri"
F mes, en texto, completo; por ejemplo, "January"
h hora, de "01" a "12"
H hora, de "00" a "23"
g hora, sin ceros, de "1" a "12"
G hora, sin ceros; de "0" a "23"
i minutos; de "00" a "59"
j día del mes sin cero inicial; de "1" a "31"
l día de la semana, en texto, completo; por ejemplo, "Friday"
L "1" or "0", según si el año es bisiesto o no
m mes; de "01" a "12"
M mes, en texto, 3 letras; por ejemplo, "Jan"
n mes sin cero inicial; de "1" a "12"
s segundos; de "00" a "59"
S sufijo ordinal en inglés, en texto, 2 caracteres; por ejemplo, "th", "nd"
t número de días del mes dado; de "28" a "31"
U segundos desde el valor de 'epoch' (0:00:00 del 1 de enero de 1970, hora GMT)
w día de la semana, en número, de "0" (domingo) a "6" (sábado)
Y año, cuatro cifras; por ejemplo, "1999"
y año, dos cifras; por ejemplo, "99"
z día del año; de "0" a "365"
Z diferencia horaria en segundos (de "-43200" a "43200")

Los caracteres no reconocidos se imprimen tal cual. El formato "Z" siempre devuelve "0" en la función gmdate().

date("d-m-Y") ->  07-04-2000
date("H:i:s") ->  14:30:22
date("Y")     ->  2000
date("YmdHis") -> 20000407143022
date("d/m/y H:i a") -> 07/04/00 14:30 pm
date(d-m-Y H:i, time()) -> el momento actual 

  • getdate (timestamp)

Devuelve un array asociativo que contiene la información de fecha del valor timestamp como los siguientes elementos:

"seconds" segundos
"minutes" minutos
"hours" horas
"mday" día del mes
"wday" día de la semana, en número
"mon" mes, en número
"year" año, en número
"yday" día del año, en número; por ejemplo, "299"
"weekday" día de la semana, en texto, completo; por ejemplo, "Friday"
"month" mes, en texto, completo; por ejemplo, "January"


  • gettimeofday()

Es un interfaz para gettimeofday(2). Devuelve un array asociativo que contiene los datos devueltos por esta llamada al sistema.

"sec" segundos
"usec" microsegundos
"minuteswest" minutos al oeste de Greenwich
"dsttime" tipo de corrección dst


  • gmdate(format, timestamp)

Idéntica a la función date() excepto en que la hora devuelta es la de Greenwich (GMT). Por ejemplo, si se utiliza en Finlandia (GMT +0200), la primera línea del ejemplo devuelve "Jan 01 1998 00:00:00", mientras la segunda imprime "Dec 31 1997 22:00:00".

  • gmmktime(hora, minuto, segundo, mes, día, año, [, is_dst])

Idéntica a mktime(), excepto en que los parámetros representan una fecha GMT.

  • gmstrftime(format, timestamp)

Se comporta como strftime(), excepto en que la hora devuelta es la de Greenwich (GMT). Por ejemplo, si se utiliza en la zona horaria EST (GMT -0500), la primera línea del ejemplo imprime "Dec 31 1998 20:00:00", mientras la segunda imprime "Jan 01 1999 01:00:00".

  • microtime()

Devuelve la cadena "msec sec", donde sec es la hora actual en número de segundos desde el valor Unix Epoch (0:00:00 del 1 de enero de 1970, hora GMT), y msec es la parte de microsegundos. Esta función sólo está disponible en sistemas operativos que admiten la llamada al sistema gettimeofday().

  • mktime(hora, minuto, segundo, mes, día, año, [, is_dst])

Devuelve el valor timestamp Unix correspondiente a los argumentos dados. El timestamp es un entero de tipo long que contiene el número de segundos entre el valor Unix Epoch (1 de enero de 1970) y la hora especificada.  Se pueden eliminar argumentos en orden de derecha a izquierda; en los argumentos omitidos se toma el valor de la fecha y hora locales. is_dst puede ponerse a 1 si la hora corresponde a horario de verano, 0 si no, o -1 (valor por omisión) si no se sabe.

mktime() es útil para realizar cálculos y validaciones con fechas, ya que calcula automáticamente el valor correcto para una entrada fuera de rango. Por ejemplo, cada una de las líneas siguientes produce la cadena "Jan-01-1998":

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) );

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

$lastday=mktime(0,0,0,3,0,2000);
echo strftime("El último día de Feb de 2000 es: %d",$lastday);
    
$lastday=mktime(0,0,0,4,-31,2000);
echo strftime("El último día de Feb de 2000 es: %d",$lastday);

Es posible también usar date()y mktime() juntas para obtener fechas futuras o pasadas:

$mañana  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$ultimo_mes = mktime(0,0,0,date("m")-1,date("d"),  date("Y"));
$proximo_año  = mktime(0,0,0,date("m"),  date("d"),  date("Y")+1);

  • strftime(format, timestamp)

Devuelve una cadena formateada según la cadena de formato dada utilizando el valor timestamp o la hora local actual. Los nombres del mes y el día de la semana y otras cadenas dependientes del idioma respetan lo establecido con setlocale(). Se reconocen los siguientes especificadores de conversión en la cadena de formato:

%a nombre del día de la semana abreviado
%A nombre del día de la semana completo
%b nombre del mes abreviado
%B nombre del mes completo
%c representación de fecha y hora preferidas en el idioma actual
%d día del mes en número (de 00 a 31)
%H hora como un número de 00 a 23
%I hora como un número de 01 a 12
%j día del año como un número de 001 a 366
%l día de la semana, en texto, completo; por ejemplo, "Friday"
%L "1" or "0", según si el año es bisiesto o no
%m mes como un número de 01 a 12
%M minuto en número
%p 'am' o 'pm', según la hora dada, o las cadenas correspondientes en el idioma actual
%S segundos; de "00" a "59"
%U número de la semana en el año, empezando con el primer domingo como el primer día de la primera semana
%W número de la semana en el año, empezando con el primer lunes como el primer día de la primera semana
%w día de la semana en número (el domingo es el 0)
%x representación preferida de la fecha sin la hora
%X representación preferida de la hora sin la fecha
%Y año en número de cuatro cifras
%y año en número de 00 a 99
%Z nombre o abreviatura de la zona horaria
%% carácter '%'


  • time()

Devuelve la hora actual como número de segundos transcurridos desde las 00:00:00 del 1 de enero de 1970 GMT (Unix Epoch).


Las funciones include() y require()

Tanto include() como require() son funciones de inclusión de código que hacen una llamada a un detrminado fichero e insertan el código de forma literal (include()) o de forma selectiva (require()). El uso de ambas funciones se hace imprescindible a la hora de la reutilización de código que se repite de una forma constante a lo largo de nuestras páginas.

Por ejemplo, suponiendo dos ficheros, cabecera.php y pie.php, que contendrán el código que siempre se repite en las partes superior e inferior de nuestras páginas, podríamos formar el uso de include() de la forma siguiente, sabiendo que todo el código de los dos ficheros se insertará en el lugar de la llamada de la función:

<?php
include ("cabecera.php");  --> Aquí se incluye todo el código de cabecera.php
echo "Hello World";
include ("pie.php");  --> Aquí se incluye todo el código de pie.php
?>

Con la función require() adquirimos las funciones y variables definidas en un fichero externo y las incluímos en el código con el fin de ser utilizadas o no en alguna parte del mismo. Por ejemplo, podemos definir un fichero llamado variables.php donde se defina la variable $cadena01 = "Hello World". De esta forma, nuestro ejemplo anterior quedaría de la forma siguiente:

<?php
require ("variables.php");
include ("cabecera.php");
echo $cadena;
include ("pie.php");
?>

Mediante el uso de estas dos funciones se puede estructurar fácilmente el código en librerías que pueden modificarse sin necesidad de tocar el código principal.


Comentario[s]

Sólo los usuarios registrados pueden escribir comentarios.
Por favor, valídate o regístrate.

Powered by AkoComment 2.0!

 
< Anterior   Siguiente >