hvjohny 1 Denunciar post Postado Fevereiro 28, 2013 Galera, venho novamente pedir a ajuda de vcs rs. Como iniciei há pouco tempo em PDO, surgiu um problema e a solução ainda não achei... Pq quando executo um select com date_format(), quando mando imprimir ele pega a data por extenso? EX: $insere = $conect->prepare(SELECT *,date_format(datacad, ‘%d/%m/%Y’) AS DATA FROM tabelatal); $insere->execute() $insere = $insere->fetchAll(PDO::FETCH_OBJ); echo $insere->DATA; o valor retornado, é alguma coisa do tipo: 20th/January/2013, ao invés de 20/01/2013. Alguém sabe me dizer pq isso acontece? Desde já, muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Fevereiro 28, 2013 De fato, não entendo o porque deste problema, a especificação da sua query está correta. Entretanto, a saída, é como se colocasse no format '%D/%M/%Y', com tudo maiúsculo. Tente executar a query diretamente no SGBD, ou através de alguma ferramenta (HeidiSQL, MySQLWorkBench) e veja se ocorre o mesmo problema. Verifique também se, em algum momento, não está utilizando algum tipo de alteração de case (como strtoupper). Há uma option (PDO::ATTR_CASE) que, se inclusa, define que os nomes das colunas serão todos transformados em upper case. Como a definição da data é na coluna, provavelmente este seja o motivo. http://php.net/manual/pt_BR/pdo.setattribute.php Uma solução, poderia ser tratar a data diretamente pelo PHP, através da biblioteca DateTime. Com ela, você vai usufruir de um enorme leque de funções e possibilidades. $data = new DateTime('2013-02-28'); echo $data->format('d/m/Y'); Saída: 28/02/2013 Caso você utilize hora junto, ou algum formato diferente, poderá criar através de um format especificado: $data = DateTime::createFromFormat('Y-m-d H:i:s', '2013-02-28 15:02:00'); echo $data->format('H:i:s d/m/Y'); Saída: 15:02:00 28/02/2013 Compartilhar este post Link para o post Compartilhar em outros sites
hvjohny 1 Denunciar post Postado Fevereiro 28, 2013 De fato, não entendo o porque deste problema, a especificação da sua query está correta. Entretanto, a saída, é como se colocasse no format '%D/%M/%Y', com tudo maiúsculo. Tente executar a query diretamente no SGBD, ou através de alguma ferramenta (HeidiSQL, MySQLWorkBench) e veja se ocorre o mesmo problema. Verifique também se, em algum momento, não está utilizando algum tipo de alteração de case (como strtoupper). Há uma option (PDO::ATTR_CASE) que, se inclusa, define que os nomes das colunas serão todos transformados em upper case. Como a definição da data é na coluna, provavelmente este seja o motivo. http://php.net/manual/pt_BR/pdo.setattribute.php Uma solução, poderia ser tratar a data diretamente pelo PHP, através da biblioteca DateTime. Com ela, você vai usufruir de um enorme leque de funções e possibilidades. $data = new DateTime('2013-02-28'); echo $data->format('d/m/Y'); Saída: Caso você utilize hora junto, ou algum formato diferente, poderá criar através de um format especificado: $data = DateTime::createFromFormat('Y-m-d H:i:s', '2013-02-28 15:02:00'); echo $data->format('H:i:s d/m/Y'); Saída: pouts.. acabei de lembrar que eu mesmo criei uma função para transformar todos as tabelas que serão selecionadas em maiúsculo... Quando vc disse que a saída está como strupper lembrei na hora... muito obrigado cara. ajudou bastante, agora vou achar alguma maneira de arrumar isso, pois todos os selects do meu projeto passam por uma unica classe rs. vou pesquisar sobre essa função DateTime, não conhecia. talvez ela me ajude.Muito obrigado novamente. abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo BH 0 Denunciar post Postado Novembro 21, 2013 Oi a todos, estou precisando de um bom tutorial que explique (usando PDO, PHP e MySQL) como salvar datetime no banco de dados usando PHP+PDO, como ler datetime do banco de dados usando PHP+PDO e, pra finalizar, fazer algumas comparações(cálculos) de datetime usando os dados do banco de dados e mostrando em PHP+PDO. Agradeço a qualquer link postado que explique isso. Procurei na net e não encontrei nada parecido de qualidade, somente encontrei muitas dúvidas. Pode ser em inglês. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites