Pasar al contenido principal
Monoforms Web Development
CAPTCHA
4 + 7 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Main navigation

  • Home
  • Sobre mi
  • Contacto
CAPTCHA
6 + 4 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Sobrescribir enlaces de ayuda a la navegación

  1. Home
  2. Mostrar Fechas Diferentes A Como Esta En La Base de Datos Con Yii-framework

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

By peter, 22 Julio, 2013
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.

Comentarios3

Anónimo (no verificado)

Hace 11 años 9 meses

Hola,

Henry Guillén (no verificado)

Hace 10 años 1 mes

Agradecimiento

Muchas gracias por este post, aunque lo último con las espresiones regulares no entendí, lo adapté y lo acomodé a mi gusto.
Veo que utilizas unas funciones que - según creo - el framework las invoca automáticamente cuando va a renderizar la vista o cuando va a crear o actualizar.
Podrías por favor decirme en donde encuentro más funciones que sean invocadas de esa misma forma? Es que - puede ser - que las necesite y no se a donde recurrir exactamente.
Muchas gracias de nuevo :D

Profile picture for user peter

peter

Hace 10 años

En respuesta a Agradecimiento por Henry Guillén (no verificado)

Hola Henry gracias por

Hola Henry gracias por comentar. Poco después de publicar este post encontre otra manera creo más efectiva de mostrar las fechas consiste básicamente en usar strtotime en lugar de la expresión regular. Con strtotime conviertes la fecha a formato unix y ya después le das formato según tus necesidades con date.
De esta forma:

 
$this->fecha_publicacion_date = date('Y-m-d', strtotime( $this->fecha_publicacion));
 

 


Y los metodos a los que te refieres puedes encontrarlos en la guía y en la documentación de Yii. Estos son algunos:
http://www.yiiframework.com/doc/guide/1.1/en/database.ar#customization
Y también los controladores tienen similares metodos como beforeAction o beforeRender: http://www.yiiframework.com/doc/api/1.1/CController

Saludos.

 

Contenido reciente

  • Como limpiar usings sin usar en Rider
  • Instalando apache, mysql y php en Ubuntu
  • Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)
  • ¿Que son los sitios web agregadores y los anuncios clasificados?
  • Mi Experiencia con Docker, Podman y Kubernetes
  • Lo más destacado del AWS User Group Puebla
  • Docker: Ignorar el directorio vendor en un proyecto de Go.
  • Instala Kubernetes en Ubuntu 22.04 para pruebas
  • Serverless, Lambda y Kubernetes: Fundamentos para la nube
  • Ejecuta tu lambda de Golang en AWS SAM de forma local

Recomendados

  • Biodiv
  • Medium
RSS feed

Política de privacidad

Términos de uso

Recomendados

  • Biodiv
  • Medium
Powered by Drupal

Monoforms ©2021 Created by Pedro Rojas Reyes