Ir para conteúdo

Arquivado

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

LockSpy

Como passar uma data no Array para o input type="Date"

Recommended Posts

Olá Pessoal,

 

Já tentei inumeros modos mais ainda não consegui passar a data que eu pego do banco de dados e preencher o campo input type="Date".

Ele sempre fica como dd/mm/aaaa.

Lembrando que minha função DBRead já retorna os dados do meu banco de dados em forma de ARRAY.

O código no qual estou fazendo é este:

<body>
	<?php include 'header.php' ?> 

	<?php 
		$id = $_GET['id'];/*PEGA O ID ENVIADO DO OUTRO FORMULÁRIO*/ 
		$dados = DBRead('transparencia', "WHERE ID_TRANSPARENCIA LIKE '$id'"); /*FAZ UMA BUSCA E RESTORNA EM FORMA DE ARRAY*/
		EditTransparencia($id); /*FUNÇÃO QUE EDITA MEU DADO*/
	?>

	<div id="Topo_Div">
		<label class="Topo_Label">Editar Transparência</label>
	</div>

	<form id="formTransparenciaEditar" action="#" method="POST">
		<div id="divTransparenciaEditar">
			<label class="lbGeral">Motivo</label><br>
			<input class="inpGeral" type="text" name="motivo" value="<?php echo ($dados[0]['MOTIVO']) ?>" autofocus><br><br>

			<label class="lbGeral">Data Item</label><br>/*ABAIXO MEU CAMPO INPUT TYPE="DATE" QUE ESTOU TENTANDO PASSAR A DATA.*/
			<input class="inpDataItem" type="date" name="inpDataItem" value="<?php echo ($dados[0]['DATA_ITEM']); ?>"><br><br>

			<label class="lbGeral">Observação</label><br>
			<textarea class="taObservacao" name="observacao" rows="15" cols="180" placeholder="Escreva observações a respeito da Transparência..."><?php echo ($dados[0]['OBSERVACAO']) ?></textarea><br><br>

			<label class="lbGeral">Valor R$</label><br>
			<input class="inpGeral" type="text" name="valor" value="<?php echo (number_format(($dados[0]['VALOR']),2,',','.')); ?>"><br><br>
		</div>
		<div id="divPainelBotoes">
			<input class="inpSalvar" type="submit" name="sendTransparencia" value="Salvar">
			<a class="aCancelar" href="transparencia.php">Cancelar</a>
		</div>
	</form>
</body>

Desde já agradecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

type date não existe.

 

Se quiser formatar uma data: DateTime::format();

Compartilhar este post


Link para o post
Compartilhar em outros sites

type date não existe.

 

Se quiser formatar uma data: DateTime::format();

Olá Gabriel,

 

Então o type="Date" que eu falo é o campo input do HTML, que deixa o campo em formato para inserir uma data.

<input class="inpDataItem" type="date" name="inpDataItem" value="<?php echo ($dados[0]['DATA_ITEM']); ?>"><br><br>

Para formatar a data somente para amostra já estou conseguindo, o que eu não estou conseguindo é passar o valor da data que eu pego do banco de dados que eu converto para array, para o campo input citado acima.

Eu já olhei os tipos no site da PHP e nada me ajudou já olhei em outros lugares alguns métodos e não consegui também porque a data de onde estou tirando é de uma array no caso este é o campo do banco de dados do qual eu estou pegando a data:

$dados[0]['DATA_ITEM']/*CHEGA PARA MIM DESTA FORMA: string '1980-12-12 00:00:00' (length=19)*/

E o que eu preciso é passar essa data que aparece ali para o input citado acima. Para que o usuário possa Editar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As vezes esqueço sobre as novidades do HTML 5, apesar dos navegadores ainda estarem muito atrelados ao html 4.

 

Mas não consigo entender o que você realmente deseja fazer. A princípio, seu código não tem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As vezes esqueço sobre as novidades do HTML 5, apesar dos navegadores ainda estarem muito atrelados ao html 4.

 

Mas não consigo entender o que você realmente deseja fazer. A princípio, seu código não tem problemas.

A acontece!

Mas então o HTML5 quando você coloca o input type="date" como citado acima ele cria um campo para colocar a data deste tipo:

datetime.jpg

E o que eu quero é preencher esses campos de data com os valores que eu tiro do meu banco de dados, para que o usuário possa editar-los.

E para tirar os valores do banco de dados eu utilizo a função DBRead que ela lê os dados do banco e já converte para uma Array, eu já testei outros métodos, mas no momento eu estou passando o valor desta forma que também não está dando certo:

value="<?php echo ($dados[0]['DATA_ITEM']); ?>"

O que acontece é que a data continua dd/mm/yyyy e não fica com a data passada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, essa situação você pode verificar em ambos os links abaixo:

http://stackoverflow.com/questions/3496241/specifying-the-value-output-of-of-an-html5-input-type-date

http://stackoverflow.com/questions/7372038/is-there-any-way-to-change-input-type-date-format

 

A única diferença dos casos acima apresentados para o seu, é a sua localização. O formato de data do Brazil é dd/mm/yyyy e deles (USA) é yyyy-mm-dd.

 

Entre essas e outras que o HTML 5 não faz muito sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 07/07/2016 at 14:37, LockSpy disse:

Olá Pessoal,

 

Já tentei inumeros modos mais ainda não consegui passar a data que eu pego do banco de dados e preencher o campo input type="Date".

Ele sempre fica como dd/mm/aaaa.

Lembrando que minha função DBRead já retorna os dados do meu banco de dados em forma de ARRAY.

O código no qual estou fazendo é este:


<body>
	<?php include 'header.php' ?> 

	<?php 
		$id = $_GET['id'];/*PEGA O ID ENVIADO DO OUTRO FORMULÁRIO*/ 
		$dados = DBRead('transparencia', "WHERE ID_TRANSPARENCIA LIKE '$id'"); /*FAZ UMA BUSCA E RESTORNA EM FORMA DE ARRAY*/
		EditTransparencia($id); /*FUNÇÃO QUE EDITA MEU DADO*/
	?>

	<div id="Topo_Div">
		<label class="Topo_Label">Editar Transparência</label>
	</div>

	<form id="formTransparenciaEditar" action="#" method="POST">
		<div id="divTransparenciaEditar">
			<label class="lbGeral">Motivo</label><br>
			<input class="inpGeral" type="text" name="motivo" value="<?php echo ($dados[0]['MOTIVO']) ?>" autofocus><br><br>

			<label class="lbGeral">Data Item</label><br>/*ABAIXO MEU CAMPO INPUT TYPE="DATE" QUE ESTOU TENTANDO PASSAR A DATA.*/
			<input class="inpDataItem" type="date" name="inpDataItem" value="<?php echo ($dados[0]['DATA_ITEM']); ?>"><br><br>

			<label class="lbGeral">Observação</label><br>
			<textarea class="taObservacao" name="observacao" rows="15" cols="180" placeholder="Escreva observações a respeito da Transparência..."><?php echo ($dados[0]['OBSERVACAO']) ?></textarea><br><br>

			<label class="lbGeral">Valor R$</label><br>
			<input class="inpGeral" type="text" name="valor" value="<?php echo (number_format(($dados[0]['VALOR']),2,',','.')); ?>"><br><br>
		</div>
		<div id="divPainelBotoes">
			<input class="inpSalvar" type="submit" name="sendTransparencia" value="Salvar">
			<a class="aCancelar" href="transparencia.php">Cancelar</a>
		</div>
	</form>
</body>

Desde já agradecido!

 

Amigo você conseguiu resolver esse problema, pois estou na mesma q você 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo do tipo DATE trabalha no formato brasileiro, pra nós. Logo você não precisa se preocupar com formatação. A data que vem do banco está correta, o próprio input é quem transforma para 00/00/0000, na hora do envio do formulário, ele automaticamente já envia formatado novamente para o padrão americano 0000-00-00

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.