Dj Gan 0 Denunciar post Postado Setembro 9, 2010 Olá a todos, Escrevo pois pesquisei bastante sobre o assunto, mas não achei solução, tutorial ou dica que adaptada pudesse funcionar em meu sistema. O problema: Preciso converter uma string no formato dd/mm/yyyy em um valor date, para então fazer comparação de datas, listar os meses, etc. No BD e sistema que já estão prontos as datas são armazenadas como texto, no formato dd/mm/yyyy, como ex 10/02/2010. Já tentei o strotime, timestamp e até explode mas não obtive sucesso. Gostaria de converter esta data (ex 10/02/2010) em uma variável do tipo date com o mesmo valor, já no formato brasileiro (ex 10/02/2010) para então fazer comparação de datas. Alguém poderia ajudar? Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Lord... 0 Denunciar post Postado Setembro 9, 2010 http://br2.php.net/date_parse isso? Compartilhar este post Link para o post Compartilhar em outros sites
Dj Gan 0 Denunciar post Postado Setembro 9, 2010 Olá Lord... Obrigado pelo retorno, mas infelizmente não funcionou. Pelo que lí, a função date_parse retorna um array com os valores de uma data, mas deve ser no formato inglês. Em testes com uma data no formato do texto do bd, não reconhece os campos corretamente. Para efeito de teste, fiz um script simples que me retorna uma destas data em formato texto que citei: <?php require_once("connect.php"); $data = mysql_query ("SELECT data_agenda FROM ordem WHERE id = '1'"); $data = mysql_fetch_array ($data); $data = $data[0]; //aqui entraria a função ....... exemplo: converttodate($data, d/m/y); ?> Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Julihermes Carlos 0 Denunciar post Postado Setembro 9, 2010 Veja se isso pode ajudar você: http://www.php.net/m...n.strtotime.php Lembrando que essa função retorna no formato timestamp Unix e que é necessário uma data no formato em inglês, no caso você teria que converter a sua data em um formato de data em inglês. Ficaria algo assim: $date_timestamp = strtotime('2010-06-02') Não é difícil converter a data que você tem (dd/mm/yyyy) em uma data em inglês (Ex: yyyy-mm-dd), basta você procurar um pouco sobre manipulação de string em PHP. Eu não testei, mas não custa nada tentar usar sem converter, usando ao formato de data que você tem, se não der certo, converte. Espero ter ajudado. Atá mais!!!!! Compartilhar este post Link para o post Compartilhar em outros sites
felipebmfaria 1 Denunciar post Postado Setembro 9, 2010 Amigao, para converter data de U.S.A. para BR e vice-versa use: $data = implode(preg_match("~\/~", $data) == 0 ? "/" : "-", array_reverse(explode(preg_match("~\/~", $data) == 0 ? "-" : "/", $data))); este codigo acho que é do fabio aqui do forum. Compartilhar este post Link para o post Compartilhar em outros sites
Dj Gan 0 Denunciar post Postado Setembro 9, 2010 Obrigado pela ajuda de todos. Não tinha pensado que mesmo uma variável de hora não passa de uma string na visão do PHP. Assim, com a dica dos colegas, simplesmente manipulei a string para o formato brasileiro, substituindo as barras por traços e posicionando os números no formato USA. O que não sabia, até então, é que o php só realiza comparações de data no formato padrão americano yyyy-mm-dd. Nem adianta tentarmos comparar dd/mm/yyyy com dd/mm/yyyy que não funciona. Para realizar a conversão de dd/mm/yyyy para yyyy-mm-dd, utilizei o seguinte código: $data = substr($data,6,4)."-".substr($data,3,2)."-".substr($data,0,2); Obrigado pela ajuda de todos. Aos moderadores, peço que marquem o tópico como resolvido. Compartilhar este post Link para o post Compartilhar em outros sites