Datepicker: Formato Della Data

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

PS. e poi se nell’opzione “value” mettessi “pippo” non dovrebbe scrivermi pippo?





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();

    }



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…

Essì, di fatti prima di salvare nel “BeforeSave” riconverto le date, per evitare i “000-00-00 00:00:00” ;)

Grazie.

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

[font=“Verdana”][size=“2”]<?php echo $form->labelEx($model,‘DtPublicazionePortale’); ?>

	&lt;?php 


		&#036;this-&gt;widget(


				'ext.jui.EJuiDateTimePicker',


				array(


					'model'     =&gt; &#036;model,


					'attribute' =&gt; 'DtPublicazionePortale',


					'language'	=&gt; 'it',


					'mode'    	=&gt; 'datetime',


					'options'   =&gt; array(


						'dateFormat' =&gt; 'dd.mm.yy',


						'timeFormat' =&gt; 'hh:mm',


					),


				)


			);		


		?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'DtPublicazionePortale'); ?&gt;


&lt;/div&gt;[/size]

[/font]

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

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?