Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

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)?

5 respostas

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.

solução!

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.