2010-04-08 5 views
1

Lorsque j'utilise l'assistant de formulaire pour faire une entrée de temps, usaually j'écrire du code comme suitPersonnaliser le format datetime dans CakePHP

<?php 
$options = array(
    'label' => '', 
    'type' => 'datetime', 
    'timeFormat'=>'24', 
    'separator'=>'-' 
); 
echo $form->input('Service.endtime',$options); 
?> 

Mais maintenant, je reçois un problème que je veux faire un style d'entrée de temps tels comme

month-day-hour 

Ensuite, comment faire cela avec quelques paramètres dans l'assistant? Des suggestions seraient appréciées.

Répondre

2

L'option Bien dateformat vous permettra de configurer les parties de date.

Utilisé pour spécifier le format des entrées de sélection pour un ensemble d'entrées liées à la date. Les valeurs valides incluent 'DMY', 'MDY', 'YMD' et 'NONE'. http://book.cakephp.org/view/203/options-dateFormat

Cependant, pour cela, je pense que vous aurez besoin d'étendre l'aide et de créer une fonction personnalisée qui renvoie cette date mixte et le style du temps. Sinon, je ne peux penser qu'à deux sélections, une avec mois et jour, et une pour l'heure. fusionner ensuite les données quelque part ailleurs, peut-être dans beforeSave() ou beforeValidate()

+0

après avoir traversé le form.php dans lib du gâteau, je obtenu une solution en utilisant la fonction d'entrée de partie unique dans l'aide comme '$ form-> month()'. Beaucoup plus de paramètres à poster, mais encore mieux que le faire manuellement :) – Young

+0

Ah cool, pratique à savoir! –

2

espère que ma solution peut aider quelqu'un avec la même exigence:

<?php 
//echo $form->year('Modelname.year',2001,2021,intval(date('Y')),false)."-"; 
echo $form->month('Modelname.month',date('m'),'',false)."-"; 
echo $form->day('Modelname.day',date('d'))."-"; 
echo $form->hour('Modelname.hour',1,date('H')); 
?>