Vamos a repasar las funcionalidades de PHP date(), básicamente se puede decir que nos devuelve formateada la fecha local del sistema para obtener el día, mes, semana, año y hora actual.
Existen 2 funciones en PHP para obtener y asignar la fecha local en el servidor (sistema):
Con PHP setlocale() se puede establecer también el idioma local para el formato de la fecha. Os dejo este post que recopila funciones para trabajar con fechas:
Una función complementaria a date() para obtener la hora actual es PHP time(), también se usa bastante con el nuevo date input HTML5 para trabajar con fechas por defecto.
Veamos la sintaxis de esta función extraída de su web oficial.
string date ( format [timestamp] )
La función nos devuelve un string, no confundir con un array, repasemos los parámetros:
Para los que trabajemos en castellano recomiendo configurar el idioma por defecto, esto se hace poniendo esta línea al comienzo de nuestro script:
setlocale(LC_ALL,"es_ES");
Vamos a ver en esta primera demo cómo podemos obtener el día actual con la función date(), los formatos de día que vamos a ver son los siguientes:
// Día del mes con 2 dígitos, y con ceros iniciales, de 01 a 31 date("d"); // Día del mes, sin ceros iniciales, de 1 a 31 date("j"); // Día de la semana en inglés, con 3 letras, de Mon a Sun date("D"); // Día de la semana en inglés, de Sunday a Saturday date("l"); // del día de la semana, desde 1 (lunes) hasta 7 (domingo) date("N"); // Sufijo del día del mes con 2 caracteres --> st, nd, rd o th date("S"); // Número entero que representa el día de la semana, de 0 (dom) a 6 (sab) date("w"); // Día del año, de 0 a 365 date("z");
date() se basa en el calendario gregoriano que consta de 52 semanas comenzando estas el lunes. Con el siguiente código obtenemos la semana actual dentro del año en vigor:
date("W");
En este segundo ejemplo de date() mostraremos el mes actual con los diferentes formatos disponibles:
// Mes actual en inglés, de January a December date("F"); // Mes actual en 2 dígitos y con 0 en caso del 1 al 9, de 1 a 12 date("m"); // Mes actual en texto en 3 dígitos en inglés, de Jan a Dec date("M"); // Mes actual en digitos sin 0 inicial, de 1 a 12 date("n"); // Número de días del mes actual, de 28 a 31 date("t");
Puede resultar interesante:
Tercer ejemplo para obtener el año con diferentes formatos:
// Detectar si el año es bisiesto, 1 es bisiesto y 0 no bisiesto date("L"); // Año actual con 4 dígitos, ej 2013 date("Y"); // Año actual con 2 dígitos, ej 13 date("y");
Cuarto ejemplo para obtener la hora actual con date(), los formatos son los siguientes:
// Antes del mediodía, despues del mediodía, am o pm (minúsculas) date("a"); // Antes del mediodía, despues del mediodía, AM o PM (mayúsculas) date("A"); // Horario de 12 horas sin ceros, de 1 a 12 date("g"); // Horario de 12 horas con ceros, de 01 a 12 date("h"); // Horario de 24 horas sin ceros, de 0 a 23 date("G"); // Horario de 24 horas con ceros, de 01 a 23 date("H"); // minutos con ceros iniciales date("i"); // segundos con ceros iniciales date("s");
Con los datos que hemos visto en los ejemplos anteriores tenemos info suficiente para sacar la fecha actual.
echo "la fecha actual es " . date("d") . " del " . date("m") . " de " . date("Y");
Aquí tenéis estos 3 formatos standar para poder usar en vuestros proyectos.
//formato para RSS date(DATE_RSS); //formato W3C date(DATE_W3C); //formato para COOKIES date(DATE_COOKIE); //formato para ATOM date(DATE_ATOM);
La función strftime() permite realizar formateos con información local del servidor, por ejemplo que la fecha devuelta esté en nuestro idioma:
//Establecer la información local en castellano de España setlocale(LC_TIME,"es_ES"); echo strftime("Hoy es %A y son las %H:%M"); echo strftime("El año es %Y y el mes es %B");