Articulos PHP
Articulos Jquery
Articulos CSS
2.9 Fecha y hora en PHP.
Con PHP también es posible trabajar con fechas y horas, para este propósito, PHP utiliza lo que se conoce como marca de tiempo. Una marca de tiempo es simplemente la cantidad de segundos que han transcurrido desde el 1 de Enero de 1970 hasta otro momento determinado, sin embargo, interpretar esta cantidad de segundos serÃa muy incomodo para nosotros como personas, por esa razón PHP cuenta con funciones para dar formato a dicha cantidad de segundos y asà transformarlos en dÃas, meses, años, etc.Para poder obtener una marca de tiempo en PHP, disponemos de tres funciones: time(), mktime() y strtotime().La función time() nos sirve para obtener la cantidad de segundos desde 1 de Enero de 1970 hasta el momento actual, deforma que si quisiéramos saber la marca de tiempo al momento actual bastarÃa con usar un código similar al siguiente:
<?php
$marcaDeTiempo=time();
echo "La cantidad de segundos desde 1 de Enero de 1970 es $marcaDeTiempo";
?>
El output serÃa:
La cantidad de segundos desde 1 de Enero de 1970 es 1360091373
Pero si necesitáramos obtener la marca de tiempo de un momento determinado, entonces tendrÃamos que usar la función mktime() que requiere los parámetros siguientes:
mktime(hora, minutos, segundos, mes, dÃa, año)
de forma que si deseáramos saber la cantidad de segundos desde el 1 de Enero del 1970 hasta el 8 de Marzo de 2000 a las 15 horas y 30 minutos usarÃamos un código como el siguiente:
<?php
$marcaDeTiempo=mktime(15,30,0,3,8,2000);
echo "La cantidad de segundos desde 1 de Enero de 1970 hasta el 8 de Marzo de 2000 a las 15 horas y treinta minutos  es $marcaDeTiempo<br/>";
?>
Y el output serÃa:
La cantidad de segundos desde 1 de Enero de 1970 hasta el 8 de Marzo de 2000 a las 15 horas y treinta minutos es 952551000
Otra manera de obtener la cantidad de segundos para un momento determinado es usando la función strtotime(), esta función recibe como parámetro una cadena de texto que especifica la fecha y/u hora de la cual se desea obtener la marca de tiempo. De forma que si deseáramos obtener la marca de tiempo del 8 de Marzo de 2000 a las 15 horas y 30 minutos podrÃamos usar la función strtotime() como sigue:Â
<?php
$marcaDeTiempo=strtotime("March 8 2000 15:30:00");
echo "La cantidad de segundos desde 1 de Enero de 1970 hasta el 8 de Marzo de 2000 a las 15 horas y treinta minutos es $marcaDeTiempo<br/>";
?>
Como se puede observar se paso una cadena de texto como parámetro, personalmente siempre utilizo los meses en ingles, para evitar cualquier confusión, y siempre pongo el mes después el dÃa y al final el año.
El output del script anterior serÃa:
La cantidad de segundos desde 1 de Enero de 1970 hasta el 8 de Marzo de 2000 a las 15 horas y treinta minutos es 952551000
Ahora una vez que ya sabemos como obtener la cantidad de segundos de un momento determinado, será necesario en muchas ocasiones, darle formato a la marca de tiempo, es decir transformarla en dÃa, meses, años, horas, minutos y segundos. Para ello usaremos la función date(). La función date() requiere los siguientes parámetros:
date(“formato”, marca de tiempo)
Formato se refiere a una cadena de texto que especifica como se mostrará el tiempo, es decir Año/Mes/dÃa o quizás con las horas y los segundos, etc.Ahora si quisiéramos formatear la marca de tiempo a Año/mes/dÃa podrÃamos usar el siguiente código:
<?php
$marcaDeTiempo=time();
$formato1="Y/m/d";
$fecha=date($formato1,$marcaDeTiempo);
echo $fecha;
?>
Y generarÃa el siguiente output:
2013/02/05
Y si quisiéramos agregar la hora, minutos y segundos podrÃamos usar el siguiente código:
<?php
$marcaDeTiempo=time();
$formato1="Y/m/d H:i:s";
$fecha=date($formato1,$marcaDeTiempo);
echo $fecha;
?>
Y generará el siguiente output:
2013/02/05 14:19:17
Y si quisiéramos obtener los meses abreviados usarÃamos el siguiente código:
<?php
$marcaDeTiempo=time();
$formato1="Y/M/d H:i:s";
$fecha=date($formato1,$marcaDeTiempo);
echo $fecha;
?>
La única diferencia ha sido que se ha cambiando la m por una M. El output serÃa el siguiente:
2013/Feb/05 14:22:19
Hay mas maneras de dar formato al tiempo, serÃa buena idea consultar la documentación oficial de PHP para más información, sin embargo, lo anterior es lo que más he utilizado.