Formatos de Fecha y Hora en PHP

En esta lección vamos a ver como algunas funciones relacionadas con el tiempo y la fecha, así como algunos ejemplos prácticos.

time

Devuelve el numero de segundos transcurridos desde el 1 de Enero de 1970. A esta forma de expresar fecha y hora se le denomina tmestamp.

date(formato, timestamp)

La funció date devuelve una cadena formateada según los código de formato. Si no le pasamos la variable timestamp nos devuelve la cadena formateada para la fecha y la hora actual.

Los códigos de formato para la función date son:

CODIGO DESCRIPCIÓN
a am o pm
A AM o PM
d Día del mes con ceros
D Abreviatura del día de la semana (inglés)
F Nombre del mes (inglés)
h Hora en formato 1-12
H Hora en formato 0-23
i Minutos
j Día del mes sin ceros
l Dia de la semana
m Número de mes (1-12)
M Abreviatura del mes (inglés)
s Segundos
y Año con 2 dígitos
Y Año con 4 dígitos
z Dia del año (1-365)

Para ver algunos ejemplos supongamos que ahora es el 7 de abril de 2000 a las 14 horas 30 minutos y 22 segundos:

  • 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

mktime(hora, min, seg, mes, dia, año)

La funcion mktime devuelve una variable de tipo timestamp a partir de las coordenadas dadas. La principal utilidad de esta funcion es la de añadir o quitar una determinada cantidad de fecha u horas a una dada.

<?PHP

function restarDias($numdias, $date) {

if (isset($date)) {

$date = time();

}

list($hora, $min, $seg, $dia, $mes, $anno) = explode( » «, date( «H i s d m Y»));

$d = $dia – $numdias;

$fecha = date(«d-m-Y», mktime($hora, $min, $seg, $mes, $d, $anno));

return $fecha;

}

echo restarDias(5).»<BR>»;
echo restarDias(10).»<BR>»;

?>

chekdate (mes, dia, año)

La función chekdate comprueba si una fecha es válida, si es así devuelve TRUE y si no lo es FALSE. Una fecha se considera válida si el año está entre 1900 y 32767, el mes entre 1 y 12, y el dia es menor o igual que número de días total del mes en cuestión.

<?PHP

if (checkdate(31, 2, 2000)) {

echo «La fecha es correcta»;

} else {

echo «La fecha es incorrecta»;

}

?>

Para el ejemplo anterior nos daría que la fecha es incorrecta, febrero nunca tiene un día 31.