Ir para conteúdo

Arquivado

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

MarcosNunes

Data Oracle x PHP

Recommended Posts

Bom dia Srs

 

o retorno da data no PHP está com 02 casas no ano, eu preciso que retorno seja com 04 casas (dd/mm/yyyy)

 

Ja tentei colocar dentro do meu arquivo PHP AppServer.php:

date_default_timezone_set("Brazil/East");

$date = strtotime($date);

$date = date('dd/mm/yyyy', $date);

 

Estou usando Flex => PHP (amfphp EasyPHP 5.3.8.0) => Oracle 10g

 

Atenciosamente

 

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria isso?

 

echo date('d/m/Y');

 

Saída:

 

Eu preciso que retorno da data para o Flex seja com 04 casas no ano, (veja como está vindo DATA_EMISSAO = "21/12/10")

 

att

 

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para alertá-lo, se esta data está vindo de uma tabela no banco de dados neste formato (dd/mm/yy), significa que o campo da tabela está usando um formato errado, deveria estar no formato DATE (yyyy-mm-dd). Na hora que você precisar fazer comparações entre datas por exemplo, isso irá lhe causar problemas.

 

Para transformar uma determinada data em outro formato desejado usando o PHP, você primeiro precisa pegar o timestamp desta data, você pode fazer isso usando a função strtotime ou mktime. Depois de pegar o timestamp basta passá-lo como segundo parâmetro da função date e formatar como desejado.

 

Pra ficar com quatro dígitos no ano é só você usar o formato que eu passei no post anterior, 'd/m/Y'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o Leozitho falou, utilize:

echo date('d/m/Y');

 

caso a data esteja vindo errada ou com 'horas' adiantas/atrasadas, ai utilize o código abaixo:

 

date_default_timezone_set("Brazil/East");
echo date('d/m/Y');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Srs

Sou novo em PHP, mas eu acredito que estou fazendo o que vocês passaram e não funciona, só não coloquei o echo date('d/m/Y') porque me dá erro quando testo pelo browser, veja meu código.

 

<?php

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

header("Content-Type: text/html; charset=ISO-8859-1", true);

date_default_timezone_set("Brazil/East");

 

Na tabela no oracle a coluna é do tipo data.

 

O retorno:

(Array)#0

[0] (Object)#1

CONTRATO_ID = "1394"

DATA_BASE = "21/12/10"

DATA_EMISSAO = "21/12/10"

 

O que estou fazendo de errado ?

 

Atenciosamente

 

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Srs bom dia

Não estou conseguindo resolver o problema

function getContrato(){

$sSql = "select tabela.* from tabela;

$this->connection();

$stid = oci_parse($this->cnn, $sSql);

oci_execute($stid , OCI_NO_AUTO_COMMIT);

while ($row = oci_fetch_array($stid , OCI_ASSOC+OCI_RETURN_NULLS)) {

$a[] = $row ;

}

return $a;

}

nessa tabela eu tenho colunas do tipo data

 

veja o retorno do PHP (http://10.1.1.186:8887/amfphp/browser/)

 

DATA_BASE = "21/12/10"

DATA_CALCULO_PRINCIPAL = "21/12/10"

DATA_EMISSAO = "21/12/10"

 

Essa data vai para o flex onde está me gerando erro, não está no formato que preciso (dd/mm/yyyy)

 

A questão é como configurar o PHP para essas datas retornar correto? ex:

DATA_BASE = "21/12/2010"

DATA_CALCULO_PRINCIPAL = "21/12/2010"

DATA_EMISSAO = "21/12/2010"

 

Lembrando> Oracle + PHP + Flex

 

Atenciosamente

 

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

nessa tabela eu tenho colunas do tipo data

 

veja o retorno do PHP (http://10.1.1.186:8887/amfphp/browser/)

 

Ninguém vai conseguir acessar este endereço que você passou, pois é um endereço local em seu computador.

 

 

DATA_BASE = "21/12/10"

DATA_CALCULO_PRINCIPAL = "21/12/10"

DATA_EMISSAO = "21/12/10"

 

Como eu já disse estes campos não estão no formato correto que seria o tipo DATE, caso contrário as datas deveriam estar no formato yyyy-mm-dd. Apenas os nomes dos campos possuem o prefixo "DATA", o que não muda em nada.

 

Essa data vai para o flex onde está me gerando erro, não está no formato que preciso (dd/mm/yyyy)

 

A questão é como configurar o PHP para essas datas retornar correto? ex:

DATA_BASE = "21/12/2010"

DATA_CALCULO_PRINCIPAL = "21/12/2010"

DATA_EMISSAO = "21/12/2010"

 

Amigo, eu já te passei no post #2 como você deve fazer para formatar a data no formato 'dd/mm/yyyy' usando a função date. No post #4 eu expliquei que você precisa primeiro converter a data para TIMESTAMP usando a função strtotime ou mktime para então conseguir formatá-la usando a função date. Caso esteja tendo alguma dificuldade para entender como funcionam as funções de datas do PHP, você pode consultar a documentação de cada função no manual :seta: http://br.php.net/ma...ef.datetime.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Léo

Como eu já disse estes campos não estão no formato correto que seria o tipo DATE, caso contrário as datas deveriam estar no formato yyyy-mm-dd. Apenas os nomes dos campos possuem o prefixo "DATA", o que não muda em nada.

 

veja o describe de minha tabela

desc vi_cf_contrato;

Name Type Nullable Default Comments

----------------------------- -------------- -------- ------- --------

EMPRESA_ID NUMBER(6)

NOME_EMPRESA VARCHAR2(70)

DATA_BASE DATE

DATA_EMISSAO DATE

 

Como eu ja havia dito, as colunas são do tipo data sim, a questão é seguinte, eu preciso tratar essas colunas antes de retornar para Flex ou tem como o proprio select do PHP já retornar corretamente?

 

Marcos

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.