Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matias Rezende

Zend_Filter_LocalizedToNormalized

Recommended Posts

Fala galera... Tudo certo?

 

Seguinte. Estou criando um formulário em que utilizo ZendX_JQuery_Form_Element_DatePicker, usando o código abaixo:

 

$data = new ZendX_JQuery_Form_Element_DatePicker('noticiaData');
$data->setLabel('Data *:')
     ->setRequired()
     ->addValidator(new Zend_Validate_Date())
     ->addFilter(new Zend_Filter_LocalizedToNormalized());

Ao fazer um Zend_Debug::dump() no valor depois de preenchido o formulário, tenho o seguinte resultado:

Formato de data
 array(5) {
  ["date_format"] => string(10) "dd/MM/yyyy"
  ["locale"] => string(5) "pt_BR"
  ["day"] => string(2) "14"
  ["month"] => string(2) "07"
  ["year"] => string(4) "2010"
}

Só que eu gostaria de fazer algo mais automático. Ou seja, queria que, ao digitar 14/07/2010, o valor retornado fosse 2010-07-14 (para inserir direto no banco de dados). Procurei no manual, mas não encontrei uma forma de ter este retorno. Se eu utilizar um campo do tipo text normal, o comportamento é o mesmo, ou seja, não é em função do DatePicker, mas em função do filtro.

 

Alguém tem alguma idéia?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajudar ajuda, mas eu queria saber se existe uma forma de fazer meio automático... Seria algo assim (este exemplo abaixo não funciona, OK?):

 

$data = new ZendX_JQuery_Form_Element_DatePicker('noticiaData');
$data->setLabel('Data *:')
     ->setRequired()
     ->addValidator(new Zend_Validate_Date())
     // assim não funciona, mas exemplifica o que eu gostaria que acontecesse. 
     ->addFilter(new Zend_Filter_LocalizedToNormalized(array('date_format' => 'YYYY-MM-DD')));
Ou seja, ao adicionar algum tipo de opção na hora de criar o objeto do filtro, ele já formatar a saída do jeito que eu quero... Na verdade, eu imagino que tenha algo assim, só que não consegui encontrar.

 

E, se for para criar alguma coisa a mais (tipo os array_shift, implode e ...), então eu utilizo o Zend_Date. Algo assim:

 

// criando o objeto zend_date
$data = new Zend_Date($formValues['noticiaData']);
//convertendo para o formato necessário
$formValues['noticiaData'] = $data->toString('YYYY-MM-dd');

Eu queria evitar este tratamento, entende? Queria pegar direto do formulário e mandar pro BD. Algo assim:

 

if ($form->isValid($this->getRequest()->getPost())) {
	$model = new Noticia();
	// inserimos os valores no banco de dados
	$model->insert($form->getValues());

Vou continuar procurando, porque acredito que exista.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.