PHP date(): Obtener día, mes, semana, año y hora actual con PHP

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.

Sintaxis de PHP date()

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:

  • format (Obligatorio): Es un string donde le pasaremos el formato de datos que queremos obtener, por ejemplo: año/mes/día.
  • timestamp (Opcional): Este valor es un número entero que representa una fecha concreta, si se omite el valor por defecto es la de la fecha del sistema. En PHP se obtiene con la función time().

Poner por defecto el idioma castellano

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

Ejemplo para obtener el día actual con PHP date()

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 ceros, 01 al 31.
  • Día del mes sin ceros, del 1 al 31.
  • Día de la semana en inglés con 3 letras, de Mon a Sun.
  • Día de la semana en inglés, de Sunday a Monday.
  • Número del día de la semana formato ISO-8601, de 1 (lunes) a 7 (domingo).
  • Los sufijos en inglés del día actual, st, nd, rd y th.
  • Día de la semana, de 0 (Domingo) a 6 (Sábado).
  • Día del año, de 0 a 365.
// 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");

Obtener el número de la semana actual con php date()

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:

  • Semana actual, de 1 a 52
date("W");

Obtener el mes actual con PHP

En este segundo ejemplo de date() mostraremos el mes actual con los diferentes formatos disponibles:

  • Mes actual, de January a December.
  • Número del mes actual, de 01 a 12.
  • Mes actual con 3 dígitos, de Jan a Dec.
  • Mes actual, de 1 a 12
  • Número de días del mes actual, de 28 a 31.
// 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:

Obtener el año actual con PHP date()

Tercer ejemplo para obtener el año con diferentes formatos:

  • Detectar si el año es bisiesto.
  • Año actual con 4 dígitos, por ejemplo 2015.
  • Año actual con 2 dígitos, por ejemplo 15.
// 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");

Obtener la hora actual con sus minutos y segundos en PHP

Cuarto ejemplo para obtener la hora actual con date(), los formatos son los siguientes:

  • Obtener formato am o pm.
  • Obtener formato AM o PM.
  • Formato 12 horas sin ceros, de 1 a 12.
  • Formato 12 horas con ceros, de 01 a 12.
  • Formato 24 horas sin ceros, de 0 a 23.
  • Formato 24 horas con ceros, de 00 a 23.
  • Minutos con ceros, de 00 a 59.
  • Segundos con ceros, de 00 a 59.
  • Sacar los minutos y segundos actuales.
// 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");

Obtener la fecha actual con PHP

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

Formato de fecha para RSS, W3C, cookies y ATOM con PHP date()

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

Formateo de fechas con PHP strftime()

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

En este post tenéis toda la explicación sobre la función strftime():

Comparar, sumar y restar fechas

Os dejo estos post con los cuales aprenderás a comparar, restar y sumar fechas:

compartir
Publicado por
Aner Barrena