Saltar la navegación

1.3.1.- Funciones de Fecha I.

Imagen de una hoja de calendario con el número 19
dannya (Dominio público)

En PHP no existe un tipo de datos específico para trabajar con fechas y horas. La información de fecha y hora se almacena internamente como un número entero. Sin embargo, dentro de las funciones de PHP tienes a tu disposición unas cuantas para trabajar con ese tipo de datos.

Una de las más útiles es quizás la función date, que te permite obtener una cadena de texto a partir de una fecha y hora, con el formato que tú elijas. La función recibe dos parámetros, la descripción del formato y el número entero que identifica la fecha, y devuelve una cadena de texto formateada.

string date (string $formato [, int $fechahora]);


El formato lo debes componer utilizando como base una serie de caracteres de los que figuran en la siguiente tabla.

Función date(): caracteres de formato para fechas y horas.

Carácter

Resultado

d

día del mes con dos dígitos.

j

día del mes con uno o dos dígitos ( sin ceros iniciales ).

z

día del año, comenzando por el cero ( 0 = 1 de enero ).

N

día de la semana ( 1 = lunes, ..., 7 = domingo ).

w

día de la semana ( 0 = domingo, ..., 6 = sábado ).

l

texto del día de la semana, en inglés ( Monday, ..., Sunday ).

D

texto del día de la semana, solo tres letras, en inglés ( Mon, ..., Sun ).

W

número de la semana del año.

m

número del mes con dos dígitos.

n

número del mes con uno o dos dígitos ( sin ceros iniciales ).

t

número de días que tiene el mes.

F

texto del día del mes, en inglés ( January, ..., December ).

M

texto del día del mes, solo tres letras, en inglés ( Jan, ..., Dec ).

Y

número del año.

y

dos últimos dígitos del número del año.

L

1 si el año es bisiesto, 0 si no lo es.

h

formato de 12 horas, siempre con dos dígitos.

H

formato de 24 horas, siempre con dos dígitos.

g

formato de 12 horas, con uno o dos dígitos ( sin ceros iniciales ).

G

formato de 24 horas, con uno o dos dígitos ( sin ceros iniciales ).

i

minutos, siempre con dos dígitos.

s

segundos, siempre con dos dígitos.

u

microsegundos.

a

am o pm, en minúsculas.

A

AM o PM, en mayúsculas.

r

fecha entera con formato RFC 2822.

Además, el segundo parámetro es opcional. Si no se indica, se utilizará la hora actual para crear la cadena de texto.

Para que el sistema pueda darte información sobre tu fecha y hora, debes indicarle tu zona horaria. Puedes hacerlo con la función date_default_timezone_set. Para establecer la zona horaria en España peninsular debes indicar:

date_default_timezone_set('Europe/Madrid');

De igual manera para que los días de la semana o el nombre de los meses aparezca en español deberás indicar los "locales" de la siguiente forma:

setlocale(LC_ALL, 'es_ES.UTF-8');

Debes tener en cuenta que la función date() no lee los "locales",  para hacer uso de los nombres en español (lunes, Enero...) deberás usar la función strftime()

Si utilizas alguna función de fecha y hora sin haber establecido previamente tu zona horaria, lo más probable es que recibas un error o mensaje de advertencia de PHP indicándolo.

Otras funciones como getdate() devuelven un array con información sobre la fecha y hora actual.

Debes conocer

En la documentación de PHP puedes consultar todas las funciones para gestionar fechas y horas:

Fechas y horas.