Yii Framework Forum: Datepicker: Formato Della Data - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Datepicker: Formato Della Data come impostare il formato della data al dato proveniente dal DB? Rate Topic: -----

#1 User is offline   tune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 27-March 12

Posted 06 November 2012 - 09:48 AM

Ciao ragazzi,
premetto che non ho grossi problemi nell'usare il DatePicker etc etc.
cmq vado al dunque,
in un form di update ho la necessità di "mostrare" la data che p contenuta dentro un input field nel formato "6/11/2012".
ora il datepicker funziona bene, lo fà, il mio problema è che essendo proprio in una scheramata di modifica ho delle date
inserite precedentemente nll'insert, quindi ho la STRINGa "2012/11/6" che si stampa nel value dell'input field dedicato.
ecco l'input field in esame a cui è assocaito il widget:
       $this->widget('zii.widgets.jui.CJuiDatePicker', 
				array(	'model'=>$model,
						'attribute'=>'data_finefase',
						'value'=>Yii::app()->format->date(strtotime($model->data_finefase)),
						'language'=>'it' ));


come potete vedere ho provato a intercettare il "value" dicendogli di valorizzarmelo col dato presente sul model e FORMATTATO, ma niente.
come posso fare?
Come è possibile a un input field del genere, assegnare al dato proveniente dal model il formato della data desiedrato e non quello del DB?

Grazie! :D
0

#2 User is offline   tune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 27-March 12

Posted 06 November 2012 - 09:49 AM

PS. e poi se nell'opzione "value" mettessi "pippo" non dovrebbe scrivermi pippo?
0

#3 User is offline   hyde82 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 62
  • Joined: 15-November 10
  • Location:Italy

Posted 06 November 2012 - 12:21 PM


protected function afterFind() {
        //cod per convertire la data in formato d-m-Y

        parent::afterFind();
    }

 

    protected function beforeSave() {
       //riconverti la data per darla in pasto al db Y-d-m

        return parent::beforeSave();
    }

0

#4 User is offline   tune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 27-March 12

Posted 07 November 2012 - 08:54 AM

Grazie Hyde82.
Di seguito scrivo la mia "soluzione", proprio usando afterFind !
	/**
	 * @see CActiveRecord::afterFind()
	 */
	public function afterFind(){
		
		$this->manageDateFormat();
	}
	
	
	
	/**
	 * Funzione che gestisce il formato delle date di tutta l'applicazione
	 */
	private function manageDateFormat(){
		
		foreach ($this->attributes as $campo=>$val){
			$dbType = $this->isDateTimeColumn($campo);
			if( $dbType ){
				
				if( preg_match('/[\/]+/',$val) ){
					//*** mi assicuro che le date ereditate di tipo '2012/11/06'
					//*** vengano convertite nel formato standard 'Y-m-d'
					$dtt = DateTime::createFromFormat('d/m/Y', $val);
					$val = $dtt->format('Y-m-d');
				}
				
				$time = strtotime($val);
				$valore_formattato = ($time)?Yii::app()->format->$dbType($time):null;
				$this->setAttribute($campo, $valore_formattato);
			}
		}		
	}


Ciao.
;)
0

#5 User is offline   hyde82 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 62
  • Joined: 15-November 10
  • Location:Italy

Posted 07 November 2012 - 09:00 AM

View Posttune, on 07 November 2012 - 08:54 AM, said:

Grazie Hyde82.
Di seguito scrivo la mia "soluzione", proprio usando afterFind !
	/**
	 * @see CActiveRecord::afterFind()
	 */
	public function afterFind(){
		
		$this->manageDateFormat();
	}
	
	
	
	/**
	 * Funzione che gestisce il formato delle date di tutta l'applicazione
	 */
	private function manageDateFormat(){
		
		foreach ($this->attributes as $campo=>$val){
			$dbType = $this->isDateTimeColumn($campo);
			if( $dbType ){
				
				if( preg_match('/[\/]+/',$val) ){
					//*** mi assicuro che le date ereditate di tipo '2012/11/06'
					//*** vengano convertite nel formato standard 'Y-m-d'
					$dtt = DateTime::createFromFormat('d/m/Y', $val);
					$val = $dtt->format('Y-m-d');
				}
				
				$time = strtotime($val);
				$valore_formattato = ($time)?Yii::app()->format->$dbType($time):null;
				$this->setAttribute($campo, $valore_formattato);
			}
		}		
	}


Ciao.
;)



ricorda che prima di salvare i dati devi riconvertire la data......
0

#6 User is offline   tune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 27-March 12

Posted 07 November 2012 - 09:59 AM

Essì, di fatti prima di salvare nel "BeforeSave" riconverto le date, per evitare i "000-00-00 00:00:00" ;)
Grazie.
0

#7 User is offline   Ricky68 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 12-November 12

Posted 12 November 2012 - 03:43 AM

Ciao Ragazzi,
Sono alle prime armi con questo framwork, è sto cercando di utilizzare il datapicker per far selezionare all'utente una data ho inserito nel codice del form.php il seguente codice
<?php echo $form->labelEx($model,'DtPublicazionePortale'); ?>
<?php
$this->widget(
'ext.jui.EJuiDateTimePicker',
array(
'model' => $model,
'attribute' => 'DtPublicazionePortale',
'language' => 'it',
'mode' => 'datetime',
'options' => array(
'dateFormat' => 'dd.mm.yy',
'timeFormat' => 'hh:mm',
),
)
);
?>
<?php echo $form->error($model,'DtPublicazionePortale'); ?>
</div>


invio il submit ma continuo ad non ricevere il valore selezionato nel form
nel model ho lasciato tutto come mi ha generato in automatico l'operazione di CRUD non riesco a capire cosa e dove devo inserire il codice per recuperare il valore della data.

grazie mille
0

#8 User is offline   tune 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 27-March 12

Posted 12 November 2012 - 07:07 AM

Ciao Ricky, premetto che ancora no ho mai usato l'estenzione che stai usando te,
ma per "continuo a non ricevere il valore selezionato" intendi che non ricevi nulla oppure ricevi un valore "sballato"?
ps.hai provato a var_dump-are il $_POST?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users