Trabajando con fechas en PHP

Trabajar con fechas es una tarea muy común pero a veces complicada si no entendemos bien como hacerlo. Con unas pequeñas funciones PHP podemos manejar e imprimir fechas asi como guardarlas en base de datos.

Para el manejo de fechas hay tres funciones básicas en PHP que harán la mayoría del trabajo necesario en la manipulación de fechas.

  • time(): devuelve la fecha y hora actual expresada en segundos (desde el 1 de enero de 1970 – llamada timestamp). Como devuelva la fecha en un entero se puede utilizar para sumar o restar fechas así como guardarla en base de datos.
  • date(): devuelve la fecha de acuerdo al formato que definamos (Mas información de como formatear la fecha en PHP: date – Manual). Esta función sirve para imprimir las fechas en formatos legibles para los visitantes.
  • strtotime(): convierte una texto en fecha expresada en timestamp.

Entonces, resumiendo la time() devolverá la fecha para poder manipularla posteriormente y date() dará formato legible para los usuarios.

Veamos unos ejemplos de uso de la función time:

<?php
// imprimir la hora actual
echo time(); // 1270966374
// imprimir dos horas antes de la hora actual
echo (time()-2*60*60); // 1270959174
// imprimir la fecha de hace una semana
echo (time()-7*24*60*60); // 1270361574
?>

Ahora veamos como utilizar la función date:

<?php
// imprimir la fecha actual
echo date("d/m/Y"); // 10/04/2010
// imprimir la hora actual
echo date("h:m:s a"); // 10:04:52 pm
// imprimir dos horas antes de la hora actual
echo date("h:m:s a", time()-2*60*60); // 08:04:52 pm
?>

El timezone o zona horaria es la hora de cada localidad de acuerdo a su ubicación en la tierra respecto a una hora universal. Pueden conocer el timezone de su localidad en World Time Zone, por ejemplo si estamos en Lima – Perú, el timezone es -5.

Ahora, si imprimimos una fecha utilizando directamente la función date(), esta lo hará pero basado en la zona horaria de mi proveedor de hosting. Para corregir esto es necesario hacer un ajuste de acuerdo al timezone nuestro y de nuestro servidor de hosting.

Creamos una función llamada dateZone que recibe dos parámetros: primero el formado que deseamos imprimir basado en la documentación (PHP: date – Manual) y el segundo parámetro es el timezone de nuestra ciudad.

<?php
function dateZone($fmt, $zone = 0) {
return date($format, time() - date("Z") + $zone*3600);
}
?>

Veamos un ejemplo de uso de esta función comparada con la función date y otra utilizando la zona horaria de Lima.

<?php
echo date("h:i:s  a - d/m/Y"); // 11:40:22 pm - 10/04/2010
echo dateZone("h:i:s  a - d/m/Y", -5); // 01:40:22 am - 11/04/2010
?>
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(1 voto, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre