Duardaum 0 Denunciar post Postado Agosto 13, 2010 Olá pessoal. olha eu aqui de novo.. Gostaria de saber se alguem sabe como faço para validar a data que vem por um post do formulario do Zend_form, comparando com a data atual e fazer com que o formulario não valide dizendo que a data é inválida!! ou fazer parar a validação no meio do formulario.. qualquer coisa to tipo que mostre que está errado?? Alguem ja passou por isso..?? Compartilhar este post Link para o post Compartilhar em outros sites
Ariane Stela 0 Denunciar post Postado Agosto 13, 2010 // Recuperando todos os dados $post = $this->getRequest()->getParams(); $data_nasc = Util::dateToDb($post['nascimento']); if(!Zend_date::isDate($data_nasc, 'yyyy-MM-dd')){ $message[] = array('error', 'Data de nascimento inválida.'); } else { $post['nascimento'] = $data_nasc; } função do Util.php static public function dateToDb($data='') { $return = null; $options['format'] = '%d/%m/%Y'; $options['min'] = ''; $options['max'] = ''; if(!Validacao::validaData($data, $options)) { $data = '01/01/1970'; } if (!empty($data)) { $dataArray = explode("/", $data, 3); if (count($dataArray) == 3) { $return = date("Y-m-d", mktime(0,0,0,$dataArray[1],$dataArray[0],$dataArray[2])); } } return $return; } Compartilhar este post Link para o post Compartilhar em outros sites
Duardaum 0 Denunciar post Postado Agosto 16, 2010 Vlw, vou testar aqui... Compartilhar este post Link para o post Compartilhar em outros sites
Ariane Stela 0 Denunciar post Postado Agosto 16, 2010 depois pra mostrar a data do modo convencional você pode usar uma funçãozinha pra fazer o contrário static public function dbToDate($data='', $format='d/m/Y') { $return = null; if (!empty($data)) { $dataParts = explode(' ', $data); $data = $dataParts[0]; $hora = (isset($dataParts[1])) ? $dataParts[1] : '00:00:00'; $dataArray = explode('-', $data, 3); $horaArray = explode(':', $hora, 3); if (count($dataArray) == 3) { $return = date($format, mktime($horaArray[0], $horaArray[1], $horaArray[2], $dataArray[1], $dataArray[2], $dataArray[0])); } } return $return; } Compartilhar este post Link para o post Compartilhar em outros sites
Duardaum 0 Denunciar post Postado Agosto 23, 2010 Resolvido, Validei ele no javascript apenas.. Grato por tudo. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 23, 2010 Validei ele no javascript apenas.. E se o cara navegar no site ou entrar na aplicação com o Javascript desabilitado? Então nunca confie na validação client side. Sempre valide no server side também. Para resolver este problema, você pude utilizar o filter LocalizedToNormalized para tratar antes de salvar no banco, em conjunto com o Zend_Date(). Na hora de exibir para o usuário, só o Zend_Date resolve o problema. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites