Ir para conteúdo

POWERED BY:

Arquivado

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

Wellington09

Data PHP + Mysql

Recommended Posts

Pessoal estou gravando minha data no banco assim

$cadastro = Date('Y/m/d');

Já tentei gravar assim -----> $cadastro = Date('d/m/Y'); mas não vai

 

Então gravei do jeito q está acima mesmo ex:

$cadastro = Date('Y/m/d');

 

INSERT INTO tabela (cadastro )VALUES($cadastro)

 

Na hora de mostrar o resultado, como eu faço para mudar a ordem da DATA q está no campo da tabela para DIA - MÊS - ANO já q ela está sendo grava ANO - MÊS - DIA ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Amigo, primeiramente quero avisa-lo que está gravando o formato da data incorretamente, o campo no mysql deve ser DATE e a data deve ser gravada no formato:

date('Y-m-d');

depois na própria query do mysq você converte a data para 00/00/0000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço assim:

 

SELECT idorcamentos, nome, empresa, date_format(dataa, '%e/%c/%Y') AS dataa, hora, visualizado FROM orcamentos WHERE idusuario = '$usuarioLogado' ORDER BY dataa, hora DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde caro amigo, eu uso essa função que funciona que é uma beleza:

 

Functions.php

<?PHP
//classe function
class ChangeDate{
	var $dia;
	var $mes;
	var $ano;
	var $result;
	
	var $y;
	var $m;
	var $d;
	var $view;
	//converter a data para incluir no banco
	function data_to_banco($data){
 	 $this->dia = substr($data,0,2);
 	 $this->mes = substr($data,3,2);
 	 $this->ano = substr($data,6,10);
 	 $this->result = $this->ano."-".$this->mes."-".$this->dia;
 	 return $this->result;
	}

 	//converter a data para exibir no php
 	function data_to_show($date){
 	 $y = substr($date,0,4); 
 	 $m = substr($date,5,2);
 	 $d = substr($date,8,2); 
 	 $view = $d."/".$m."/".$y;
 	return $this->view;
	}*/
}
?>

Index.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
include("functions.php");

$data = date("d/m/Y");
$datte = date("Y-m-d");

	 $ObjDataToBanco = new ChangeDate();
echo $ObjDataToBanco->data_to_banco($data);
echo $ObjDataToBanco->data_to_show($datte);

?>
</body>
</html>

Pronto, é só jogar em uma variavel ao inves de exibir.

Duvida post here!

 

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Abrindo um parênteses nesse assunto, gostaria de lhe explicar algumas coisas:

 

O MySQL grava datas no formato: Y-m-d, ou seja:

 

- Ano Completo ( Y ). Ex.: 2008

- Mês ( m ). Ex.: 10

- Dia ( d ). Ex.: 22

 

Ficando assim: 2008-10-22.

 

Se você quiser trazer a data já formatada na hora da seleção, use o método date_format do MySQL. Ex.:

 

SELECT DATE_FORMAT(campo_da_data,'%d/%m/%Y') FROM minha_tabela;

Dessa forma a data já virá no formato 22/10/2008.

 

Sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem esse método também. [aprendi com o Fabyo]

 

$data = implode("/", array_reverse(explode("-", "2006-08-25")));

Créditos: http://forum.imasters.com.br/index.php?showtopic=191441 [por acaso é um ótimo post que deveria estar pinado!]

 

Att,

 

Leandro Barral []'..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pessoal eu consegui mostrar a data 22/11/2008 com a ajuda d vcs

o problema agora é como pegar a data digitada no campo ? pq essa data acima eu estava pegando ela do servidor e agora para a pessoa digitar a data em um campo e eu pegar esse campo e gravar no banco do tipo date como faço pois sei q nao é

$data = $_POST['data']; ----> gravar tudo como 0000-00-00

$data = Date('Y-m-d'); ----> grava a data do servidor e eu não quero...quero q grave a data digitada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta tratar a $_POST['data'] com essa linha que o Kimura postou:

 

$data = implode("/", array_reverse(explode("-", "2006-08-25")));

Mas dai onde esta 2006-08-25, voce coloca a variavel $_POST['data']...

 

Isso se a pessoa esta digitando com - né... se for barra voce faz o implode com "/", "2006-08-25"

 

Acho que isso vai funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pera ae q vou tentar ja q eu volto ah e outra coisa q eu prestei atenção vamos supor q eu tenha uns 50 campos no banco certo e eu vou usar quase q todos eles eu faço isso

EX:

SELECT * FROM tabela

e se eu tiver um campo de data na tabela e quiser mostrar como faço ?

sendo q no lugar do * teria q por todos os campos + DATE_FORMAT(data_atualizacao, '%d/%m/%Y')data_atualizacao

não tem como mesmo ? só colocando campo por campo

 

EX:

SELECT DATE_FORMAT(data_atualizacao, '%d/%m/%Y')data_atualizacao,

campo1,campo,2 e ai vai até o campo50 FROM tabela

 

Tipo não teria uma coisa meio q assim EX:

SELECT * DATE_FORMAT(data_atualizacao, '%d/%m/%Y')data_atualizacao FROM tabela

sei q isto é errado viu pessoal só coloquei pra vcs me entenderem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabe que eu nunca tentei... Mas deve dar sim... Bom, mas acho que o esforço de colocar apenas os campos que serão usados realmente é altamente recompensado. Porque aumenta o desempenho nas consultas. Se precisar de um pouco de velocidade, faz isso... Mas que é chato ficar escrevendo campo por campo é verdade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data_digitada = implode("-", array_reverse(explode("-", $_POST['data'])));

$insere = "INSERT INTO tabela(data_digitada)VALUES('$data_digitada');"

POR MAIS QUE EU DIGITE UMA DATA Q NÃO SEJA HJ ELE GRAVA A DE HJ NO BANCO PQ ? QQ ESTOU FAZENDO DE ERRADO ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara da um print_r($data_digitada);

Acho que voce vai ter que reordenar esse array antes de inseri-lo no DB.

 

$data_ano = $texto_digitado[2];

$data_mes = $texto_digitado[1];

$data_dia = $texto_digitado[0];

 

$nova_data = $data_ano."-".$data_mes."-".$data_dia;

Compartilhar este post


Link para o post
Compartilhar em outros sites

po cara na consulta você faz o seguinte.

 

$datas = explode("-",$resposta["data"]);

//Logo na variavel datas voce ira ter as tres datas de forma VETORIAL...

//Neste momento voce pode desenvolver uma nova formatação.

 

$exibir_data = $datas[2]."/".$datas[1]."/".$datas[0];

 

//Pronto... Agora o EXIBIR_DATA contem a data no formato desejado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive esse problema de pegar a data digitada pelo usuário (data de nascimento) e, depois de muito trabalho, criei três campos do tipo text (dia, mês e ano) para o usuário digitar a data.

 

Depois, crei três váriáveis

 

@$dia = $_POST['dia'];

@$mes= $_POST['mes'];

@$ano= $_POST['ano'];

 

e outra para juntar as dia/mes/ano

 

@$datanasc = $ano . '-' $mes . '-' . $dia;

 

O ponto (.) é para concatenar as variáveis, ou seja, juntar os três campos em um só, para ficar do jeito do MySQL: 0000-00-00

 

Esse mesmo procedimento pode ser feito também com select ao invés do text.

 

Para exibir, usei date_format(data, '%d/%m/%Y') as data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim mesmo e deu certo

$data_curso = implode("/", array_reverse(explode("/", $_POST['data_curso'])));

 

Naquela hora não gravou pq eu digitava - e nao / ai ele gravava 0000-00-00 agora é só por uma mascara no campo com javascript usando / pra usuario não digitar - e acabar comigo AUHauhaUa muito obrigado ae pessoal valeu mesmo essa data deu trabalho rs pensei em mecher com a hora + deixa pra outro dia rs hj ja ta tarde amanha to de volta brigadao ae denovo fui

Quero só ver pra mecher com a hora deve dar o mesmo trabalho rs uaHAuaH FUI

Compartilhar este post


Link para o post
Compartilhar em outros sites

basta usar essa função JS para pegar a data no formato certo

 

function mascara_data_adm(dt){

var mydata = '';

mydata = mydata + dt;

if (mydata.length == 2){

mydata = mydata + '/';

document.cad_hardware.dt.value = mydata;

}

if (mydata.length == 5){

mydata = mydata + '/';

document.cad_hardware.dt.value = mydata;

}

}

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.