MO
Função para Calcular Idade
- <?php
- Pessoal uma ajuda estou criando uma função para calcular a idade, porém surgiu um erro que não estou conseguindo desvendar, o erro:
- Warning: strtotime() expects parameter 1 to be string, object given in C:\Vertrigo\www\teste\app\lib\widget\Funcoes.class.php on line 62
- Fatal error: Uncaught TypeError: Argument 1 passed to Adianti\Widget\Form\TEntry::setExitAction() must be an instance of Adianti\Control\TAction, integer given, called in C:\Vertrigo\www\teste\app\control\apresentacao\Formfuncaocalculaidade.class.php on line 90 and defined in C:\Vertrigo\www\teste\lib\adianti\widget\form\TEntry.php:201
- Stack trace:
- #0 C:\Vertrigo\www\teste\app\control\apresentacao\Formfuncaocalculaidade.class.php(90): Adianti\Widget\Form\TEntry->setExitAction(50)
- #1 C:\Vertrigo\www\teste\lib\adianti\core\AdiantiCoreApplication.php(80): Formfuncaocalculaidade->__construct(Array)
- #2 C:\Vertrigo\www\teste\engine.php(15): Adianti\Core\AdiantiCoreApplication::run('1')
- #3 C:\Vertrigo\www\teste\engine.php(20): TApplication::run()
- #4 {main}
- thrown in C:\Vertrigo\www\teste\lib\adianti\widget\form\TEntry.php on line 201
- os Códigos:
- <?php
- /**
- * FamiliarCompletoDataGridView Form List
- * @author <your name here>
- */
- class Formfuncaocalculaidade extends TPage
- {
- protected $form; // form
- protected $datagrid; // datagrid
- protected $pageNavigation;
- protected $loaded;
- private static $formName = 'form_CompFam';
- /**
- * Form constructor
- * @param $param Request
- */
- public function __construct( $param )
- {
- parent::__construct();
- // creates the form
- $this->form = new TQuickForm('form_CompFam');
- $this->form->class = 'tform'; // change CSS class
- $this->form->style = 'display: table;width:100%'; // change style
- $this->form->setFormTitle('Cadastro dos Familiáres');
- //criando notebook
- $this->notebook = new BootstrapNotebookWrapper( new TNotebook(900,500) );
- //$this->notebook = new TNotebook(900,500);
- //adicionando o notebook dentro do form
- $this->form->add($this->notebook);
- //criando uma tabela
- $table = new TTable();
- //criando um panel
- $panel = new TPanel(1000,240);
- //adicionando o panel a tabela
- $table->addRowSet($panel);
- //adicionando duas páginas ao notebook
- $this->notebook->appendPage('Dados dos Familiares', $table);
- $cod_compfam = new TEntry('cod_compfam');
- $compf_nome = new TEntry('compf_nome');
- $compf_cpf = new TEntry('compf_cpf');
- $compf_datnasc = new TDate('compf_datnasc');
- $compf_Idade = new TSpinner('compf_Idade');
- //formatando os campos de valor Beneficio e renda
- $compf_cpf->setMask('999.999.999-99');
- $compf_datnasc->setMask('dd/mm/yyyy');
- //Desabilitando o Código
- $cod_compfam->setEditable(False);
- // definindo o tamanho dos campos
- $cod_compfam->setSize(80);
- $compf_nome -> setSize(290);
- $compf_cpf -> setSize(100);
- $compf_datnasc -> setSize(100);
- $compf_Idade -> setSize(55);
- //formatação dos campos
- $compf_Idade->setRange(0,120,1);
- //validando campos
- $compf_nome->addValidation('compf_nome', new TRequiredValidator);
- //adicionando os Labels no Panel
- $panel->put(new TLabel('Cd.Titular'), 10, 16);
- $panel->put(new TLabel('Nome'), 84, 16);
- $panel->put(new TLabel('C.P.F'), 380, 16);
- $panel->put(new TLabel('Dat.Nasc.'), 490, 16);
- $panel->put(new TLabel('Idade'), 630, 16); // 1a Linha
- ## inserindo campos na pagina 2
- $panel->put($compf_nome, 92, 35);
- $panel->put($compf_cpf, 390, 35);
- $panel->put($compf_datnasc, 500, 35);
- $panel->put($compf_Idade, 630, 35); // 1a Linha
- $compf_Idade = Funcoes::onCalcidade($compf_datnasc);
- $compf_datnasc->setExitAction($compf_Idade);
- $this->form->setFields(array($cod_compfam, $compf_nome, $compf_cpf, $compf_datnasc, $compf_Idade));
- parent::add($this->form);
- }
- }
- <?php
- /**
- * Funcoes.class [ HELPER ]
- * Classe para incluir funções!
- */
- class Funcoes
- {
- /*
- * Calcula idade
- */
- public static function onCalcidade($param){
- /*
- * private static $formName = 'nome_do_formulario';
- */
- //print_r($param);
- try
- {
- return intval(substr(date('Ymd') - date('Ymd', strtotime($param)), 0, -4)); }
- catch (Exception $e){
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
?>
Marcos Boas;
O erro ta dizendo que o paramentro 1 da strtotime() seje uma sting;
de um var_dump($param); para ver o que esta chegando.
Mas se quizer tenho uma função que utilizo para calcular datas, vc pode molda-la como vc quizer:
Saudações
Para ter noção esta função converte para idade atual no datagrid
Galera muito obrigado pela ajuda verifiquei que não estava tratando corretamente o campo data.