Como ler um campo date do banco de dados e mostrar na tela de alteração de cadastro?? (no value do input)?
Como ler um campo date do banco de dados e mostrar na tela de alteração de cadastro?? (no value do input)?
Oi Ari, tudo bom?
Esse processo pode ser meio complicado no começo mesmo. A ideia é guardar no banco de dados a string da data. Algo como "26-01-1994".
Tendo essa string na mão, basta chamar uma instancia de DateTime passando a string no construtor. Algo como "new DateTime("26-01-1994");"
Para exibir no input basta passar a string da data em value. Algo como:
<input name="data" type="date" value="<?= $dataDoBanco->format("dd-mm-YYYY")?>">
A parte chata é justamente garantir esse formato dia-mes-ano pois o tipo date do HTML 5 trabalhar com formatos acoplados à linguagem da sua máquina. Então se sua máquina estiver configurada em portugues vai funcionar. Se estiver configurado em ingles o formato provavlmente será ano-mes-dia ou mes-dia-ano.
Pra evitar esse tipo de confusão com o HTML 5, existem algumas bibliotecas JavaScript como o Jquery Date Picker que trabalha independente do HTML 5 garantindo sempre o mesmo formato e, por consequencia, a compatibilidade com qualquer máquina.
Abraço =)
André boa noite, obrigado pela ajuda mas o que tem de errado no codigo abaixo.
<input class="form-control" type="date" name="copag_dt_vencto"
value="<?=$conta['copag_dt_vencto']->format("dd-mm-YYYY") ?>
falta um espaço depois do <?= e $conta. Além das aspas duplas no final de value e o fechamento da tag:
<input class="form-control" type="date" name="copag_dt_vencto"
value="<?= $conta['copag_dt_vencto']->format('dd-mm-YYYY') ?>">
André bom dia.
Obrigado mais uma vez pela ajuda, vou testar.
André boa tarde.
Consegui, minha coluna esta como datetime no banco de dados, mudei para date e passei no imput $conta['copag_dt_vencto'] e deu certo.
Obrigado pela ajuda. Abraço.