bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 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
Vinicius Weber 0 Denunciar post Postado Fevereiro 22, 2011 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
Vinicius Cruz 1 Denunciar post Postado Fevereiro 22, 2011 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
Vinicius Weber 0 Denunciar post Postado Fevereiro 22, 2011 Pode fazer como o Vinicius disse, e pode trocar depois na hora de mostrar a data usando o explode também Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Fevereiro 22, 2011 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
bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 <?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
Vinicius Weber 0 Denunciar post Postado Fevereiro 22, 2011 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
bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 Sim beleza, mas se eu deixar no formato varchar não vou conseguir fazer busca por datas, até vou, mas vai dar erros, é mrlhor no formato data Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Fevereiro 22, 2011 Você quer fazer um insert ou um select? A data vem no formato pt. Então faça o seguinte: if($_POST){ $data = = implode("-", array_reverse(explode("/", $_POST['data']))); $sql = "INSERT INTO procedimentos(data)VALUES('$data'); mysql_query($sql); } Compartilhar este post Link para o post Compartilhar em outros sites
bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 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
Vinicius Weber 0 Denunciar post Postado Fevereiro 22, 2011 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
bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 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
André Severino 3 Denunciar post Postado Fevereiro 22, 2011 <?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
bcs_ptx 0 Denunciar post Postado Fevereiro 22, 2011 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