04
Feb

Algo muy útil para nuestras aplicaciones que manejan datos con fechas y horas, es conocer el helper DateHelper para que nos ayude en la tarea de mostrar una fecha de una forma entendible al usuario.

Lo veremos con un ejemplo. Se tiene la fecha “2010/01/01 23:45:00” almacenada en algún lugar, pero nos gustaría que al usuario se le mostrara “Viernes 1 de enero de 2010 23:45”. Para esto cargamos el helper de fechas de Symfony, directamente en el template.

indexSuccess.php

<?php use_helper('Date') ?>

Luego, cuando queremos mostrar la fecha utilizamos la función de formato.

<?php echo format_datetime($fecha, 'g', 'es_CL') ?>

Ahora, la explicación. El primer parámetro es la variable o la fecha que queremos mostrar, el segundo es el formato que le queremos dar a la fecha mostrada (los cuales listaré al final) y por último, se elige la cultura. Los dos últimos parámetros son opcionales, y si se omiten se utilizan los predefinidos.

En la documentación pueden ver qué otras funciones tiene el helper: http://www.symfony-project.org/api/1_4/DateHelper

Tipos de formatos

  • 'd' : Fecha corta
  • 'D' : Fecha larga
  • 'p' : Fecha largo medio
  • 'P' : Fecha completa
  • 't' : Hora corta
  • 'T' : Hora larga
  • 'q' : Hora largo medio
  • 'Q' : Hora completa
  • 'f' : Fecha larga + Hora corta
  • 'F' : Fecha larga + Hora larga
  • 'G' : Fecha corta + Hora larga
  • 'g' : Fecha corta + Hora corta
  • 'i' : yyyy-MM-dd
  • 'I' : yyy-MM-dd HH:mm:ss
  • 'm' ó 'M' : MMMM dd
  • 'r' ó 'R' : EEE, dd MMM yyyy HH:mm:ss
  • 's' : yyyy-MM-ddTHH:mm:ss
  • 'u' : yyyy-MM-dd HH:mm:ss z
  • 'U' : EEEE dd MMMM yyyy HH:mm:ss
  • 'y' ó 'Y' : yyyy MMMM

Espero, como siempre, que esto le sea de utilidad a alguien. Se agradecen los comentarios y/o correcciones.

, , , ,

3 Responses to “Formatear fechas en Symfony con DateHelper”

  • Roberto German Puentes Diaz

    Buen Post, David!.

    No tenes uno sobre como manejar importes en moneda de dos decimales :D:D:D

  • Edgar

    buenas hermanito me gustaria saber algun metodo “escape” para la funcion format_datetime ya que en tal caso que me corresponda escribir por lo menos una “M” en el codigo no me lo transforme en el mes, te lo agradeceria mucho saludos muy buen post

Add reply