Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

Insert date

Recommended Posts

Olá, seguinte, na hora de inserir a data no banco ela vau como 0000-00-00, eu queria inserir assim 00-00-0000,

ex: eu quero achar a dia 01/01/2010...se eu colocar do dia 01/01/2009 a 01/01/2010, ele não vai achar nada,

mas se eu colocar 2010/01/01 a 2011/01/01 ele acha, como eu faço para mudar isso?

 

no insert eu fiz assim

 

$data = $_POST['data'];

 

if($_POST){

$inserir = "INSERT INTO procedimentos

(

data,

)

VALUES

(

'$data')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tente usar explode desta maneira, verifique como esta puxando certinho e faça isso na hora de gravar, caso vá em outra ordem, é só alterar os números.

 

Código:

$data = $_POST['data'];

$data = explode('-',$data);

$data = $data[3]."/".$data[2]."/".$data[1];


if($_POST){
$inserir = "INSERT INTO procedimentos
(data) VALUES('$data')"; 
}

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, ao invés de tentar mudar a maneira como o banco trabalha, não é melhor mudar sua visão de como ver as coisas? O padrão de data do banco é o inglês, por isso a data fica no formato aaaa-mm-dd. Isso facilitará muito em realizar busca por período, por exemplo.

 

Diferente de algumas pessoas que preferem usar o campo tipo varchar para armazenar no formato pt_br dd/mm/aaaa, você terá mais dores de cabeça em realizar consultas no banco.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma de converter a data de en para pt_br

 

$dataPt = implode("/", array_reverse(explode("-", $dataEn)));

 

ou ainda

 

$dataPt = date('d/m/Y', strtotime($dataEn));

 

Acho a segunda forma mais elegante :)

 

Referências

http://www.php.net/manual/pt_BR/function.strtotime.php

http://www.php.net/manual/pt_BR/function.explode.php

http://www.php.net/manual/pt_BR/function.array-reverse.php

http://www.php.net/manual/pt_BR/function.implode.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

$data = $_POST['data'];

 

$data = explode('-',$data);

 

$data = $data[3]."/".$data[2]."/".$data[1];

 

 

if($_POST){

$inserir = "INSERT INTO procedimentos(data)VALUES('$data');

?>

 

cara fiz exatamente assim, e no banco dica 0000-00-00

 

ele não puxa os dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, grava no banco como data Americana mesmo, só converta na hora de puxar os dados pode usar do jeito que o Vinicius Cruz disse, que fica de uma forma mais leve para usar.

 

Acho mais facil fazer desse jeito, ou senao ao invez de deixar como Date na tabela, deixe como varchar de tamanho 10

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

da esse erro nessa linha

 

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

 

Parse error: parse error in C:\Arquivos de programas\EasyPHP5.3.0\www\extranet\inserir_procedimentos.php on line 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta com 2 sinais de igual

 

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

 

correto

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

no select eu fiz assim, date_format(procedimentos.data, '%d/%m/%Y') as data,

dai ele puxa a data no formato certo, mas quando eu inserir e quando eu fizer a busca eu gostaria de fazer no mesmo jeito

 

Beleza deu certo, e na busca faço do mesmo jeito porque tenho dois campos assim da data ... á ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

$data = $_POST['data'];

 

$data = explode('-',$data);

 

$data = $data[3]."/".$data[2]."/".$data[1];

 

 

if($_POST){

$inserir = "INSERT INTO procedimentos(data)VALUES('$data');

?>

 

É pq você está passando a data em dd/mm/aaaa e ele ta dando um explode em -

 

function formataData($data){
       if(strpos($data, '-')){
               $d = explode("-", $data);
               return "$d[2]-$d[1]-$d[0]";
       }
       if(strpos($data, '/')){
               $d = explode("/", $data);
               return "$d[2]-$d[1]-$d[0]";               
       }
}

//Usando
echo formataData("22/02/2011");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria assim? isso buscaria o script acima?

 

<script src="js/formato_data.js"></script>

 

<form name="busca" action="" method="post" onSubmit="return formataData()">

 

<input type="text" id="text3" name="inicio" onKeyUp="javascript:makeDate('data')" >

<input type="text" id="text3" name="final" onKeyUp="javascript:makeDate('data2')" >

 

</form>

 

Bah raça valeu mesmo a ajuda de vcs, mas só não deu certo quando eu vou colocar as datas para fazer uma busca, se tiver como alguem responder eu entro amanha aqui e vejo, valeu mesmo.abraços

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.