Mostrar fechas diferentes a como esta en la base de datos con yii-framework

Enviado por peter el Lun, 22/07/2013 - 10:37
Cuando se necesitan mostrar fechas de diferente manera a como esta en la base de datos lo que he hecho es que en el método “afterfind” del modelo lo formateamos como necesitamos:

protected function afterFind (){ $this->fecha_entrega=date('d/m/Y',strtotime($this->fecha_entrega)); $this->fecha_requerida=date('d/m/Y',strtotime($this->fecha_requerida)); $this->fecha_pedido=date('d/m/Y',strtotime($this->fecha_pedido)); $this->fecha_actualizacion=date('d/m/Y',strtotime($this->fecha_actualizacion)); return parent::afterFind (); }
Ya en todas las vistas donde lo usemos siempre se mostrara con el formato: día/mes/año (d/m/Y)

Y cuando vamos a guardar la fecha necesitamos regresarlas como originalmente las encontramos para esto en el metodo “beforeSave()” del modelo.
public function beforeSave() { $this->fecha_entrega=preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $this->fecha_entrega); $this->fecha_requerida=preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $this->fecha_requerida); $this->fecha_pedido=preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $this->fecha_pedido); $this->fecha_actualizacion=preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $this->fecha_actualizacion); $this->fecha_entrega=date('Y-m-d H:i:s',strtotime($this->fecha_entrega)); $this->fecha_requerida=date('Y-m-d H:i:s',strtotime($this->fecha_requerida)); $this->fecha_pedido=date('Y-m-d H:i:s',strtotime($this->fecha_pedido)); $this->fecha_actualizacion=date('Y-m-d H:i:s',strtotime($this->fecha_actualizacion)); return parent::beforeSave(); }
Las lineas $this->fecha_entrega=preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $this->fecha_entrega);
con la expresión regular fueron agregadas porque en algunas ocaciones mandaba fechas erroneas.

Añadir nuevo comentario

Filtered HTML

  • Falta el filtro. Se eliminará todo el texto
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd><php>
  • Saltos automáticos de líneas y de párrafos.