
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.
Carácter |
Resultado |
---|---|
|
día del mes con dos dígitos. |
|
día del mes con uno o dos dígitos ( sin ceros iniciales ). |
|
día del año, comenzando por el cero ( 0 = 1 de enero ). |
|
día de la semana ( 1 = lunes, ..., 7 = domingo ). |
|
día de la semana ( 0 = domingo, ..., 6 = sábado ). |
|
texto del día de la semana, en inglés ( Monday, ..., Sunday ). |
|
texto del día de la semana, solo tres letras, en inglés ( Mon, ..., Sun ). |
|
número de la semana del año. |
|
número del mes con dos dígitos. |
|
número del mes con uno o dos dígitos ( sin ceros iniciales ). |
|
número de días que tiene el mes. |
|
texto del día del mes, en inglés ( January, ..., December ). |
|
texto del día del mes, solo tres letras, en inglés ( Jan, ..., Dec ). |
|
número del año. |
|
dos últimos dígitos del número del año. |
|
1 si el año es bisiesto, 0 si no lo es. |
|
formato de 12 horas, siempre con dos dígitos. |
|
formato de 24 horas, siempre con dos dígitos. |
|
formato de 12 horas, con uno o dos dígitos ( sin ceros iniciales ). |
|
formato de 24 horas, con uno o dos dígitos ( sin ceros iniciales ). |
|
minutos, siempre con dos dígitos. |
|
segundos, siempre con dos dígitos. |
|
microsegundos. |
|
am o pm, en minúsculas. |
|
AM o PM, en mayúsculas. |
|
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()