Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Conte

[Resolvido] Conversão de data

Recommended Posts

Galera boa tarde.

eu estou com uma duvida, meu sistema o cliente cadastra a data para pagamento, so que o mesmo cadastra em nada do brasil que e dia/mes/ano e gostaria de converter para o campo data do mysql.

o usuario digita padrao brasileiro e o php converte para padrao do mysql.

 

alquem sabe como se faz isso?

ja que por exemplo, a data digitada pode ser 27/07/2011 e o sistema cadastra no banco: 2011-07-26

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use com moderação ;)

 

<?php

function reverse_date( $date )
{
   return ( strstr( $date, '-' ) ) ? implode( '/', array_reverse( explode( '-', $date ) ) ) : implode( '-', array_reverse( explode( '/', $date ) ) );
}

echo reverse_date( '2011-07-27' ); // 27/07/2011

echo '<br/>';

echo reverse_date( '27/07/2011' ); // 2011-07-27

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu codigo fico assim, nao sei se entendi bem, mais o que preciso e cadastrar em padrao mysql com o user digitando padrao brasileiro:

	  <?php
   include "../includes/conecta.php";

function reverse_date( $datadaconta )
{
   return ( strstr( $datadaconta, '-' ) ) ? implode( '/', array_reverse( explode( '-', $datadaconta ) ) ) : implode( '-', array_reverse( explode( 		    '/', $datadaconta ) ) 	);
}

$datadaconta = date("Y-m-d");
$descricao = $_POST['descricao'];
$plano = explode( '_', $_POST[ 'plano' ] );
$codplanocontas = $plano[0];
$planodecontas = $plano[1];
$centrodecustos = $_POST['centrodecustos'];
$cli = explode( '_', $_POST[ 'cli' ] );
$id_cliente = $cli[0];
$cliente = $cli[1];

function reverse_date( $datavencimento )
{
   return ( strstr( $datavencimento, '-' ) ) ? implode( '/', array_reverse( explode( '-', $datavencimento ) ) ) : implode( '-', array_reverse( explode('/', $datavencimento ) ) 	);
}

$datavencimento = date("Y-m-d");
$conta = $_POST['conta'];
$valor = $_POST['valor'];
$comentario = $_POST['comentario'];
 if(!empty($descricao)) {
   $sql = mysql_query("insert into contasareceber (datadaconta, descricao, codplanocontas, planodecontas, centrodecustos, id_cliente, cliente, datavencimento, conta, valor, comentario) VALUES ('$datadaconta', '$descricao', '$codplanocontas', '$planodecontas', '$centrodecustos', '$id_cliente', '$cliente', '$datavencimento', '$conta', '$valor', '$comentario')", $db);
   echo"Cadastrado de Contas a Receber efetuado com sucesso";
   }
?>

 

deu o erro:

 

Fatal error: Cannot redeclare reverse_date() (previously declared in /home/sgiimpac/public_html/financeiro/recebe_contasareceber.php:88) in /home/sgiimpac/public_html/financeiro/recebe_contasareceber.php on line 106

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, velho

 

Acontece que você declarou a mesma função duas vezes... isso é errado, você declara a função apenas uma vez, ou seja, coloca o código que o amigo Carlos Coelho te passou só uma vez, ai para usar faz assim:

 

$dataconta = reverse_date($valor_digitado);

 

PS: é bom usar uma mascara no campo da data, porque usuário você já viu né? usando uma máscara é mais garantia que o user digite a data certa, tipo: 28/07/2011

 

Entendeu? a serventia da função é essa, você poder reaproveitar o código...

Eu até aconselharia você usar isso num arquivo externo, e chamar com um include para usar a função, dai se você precisar pode fazer isso em todos os arquivos que tiver que converter a data, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, velho

 

Acontece que você declarou a mesma função duas vezes... isso é errado, você declara a função apenas uma vez, ou seja, coloca o código que o amigo Carlos Coelho te passou só uma vez, ai para usar faz assim:

 

$dataconta = reverse_date($valor_digitado);

 

PS: é bom usar uma mascara no campo da data, porque usuário você já viu né? usando uma máscara é mais garantia que o user digite a data certa, tipo: 28/07/2011

 

Entendeu? a serventia da função é essa, você poder reaproveitar o código...

Eu até aconselharia você usar isso num arquivo externo, e chamar com um include para usar a função, dai se você precisar pode fazer isso em todos os arquivos que tiver que converter a data, entendeu?

 

Cara obrigado pela ajuda ate o momento, so que fazendo da maneira que me aconselhou, ele cadastra as datas em branco no bd: 0000-00-00.

 

codigo alterado:

 

<?php
   include "../includes/conecta.php";

function reverse_date( $date )
{
   return ( strstr( $date, '-' ) ) ? implode( '/', array_reverse( explode( '-', $date ) ) ) : implode( '-', array_reverse( explode( 		    '/', $date ) ) 	);
}

$dataconta = reverse_date('$dataconta');
$descricao = $_POST['descricao'];
$plano = explode( '_', $_POST[ 'plano' ] );
$codplanocontas = $plano[0];
$planodecontas = $plano[1];
$centrodecustos = $_POST['centrodecustos'];
$cli = explode( '_', $_POST[ 'cli' ] );
$id_cliente = $cli[0];
$cliente = $cli[1];
$datavencimento = reverse_date('$datavencimento');
$conta = $_POST['conta'];
$valor = $_POST['valor'];
$comentario = $_POST['comentario'];
 if(!empty($descricao)) {
   $sql = mysql_query("insert into contasareceber (datadaconta, descricao, codplanocontas, planodecontas, centrodecustos, id_cliente, cliente, datavencimento, conta, valor, comentario) VALUES ('$datadaconta', '$descricao', '$codplanocontas', '$planodecontas', '$centrodecustos', '$id_cliente', '$cliente', '$datavencimento', '$conta', '$valor', '$comentario')", $db);
   echo"Cadastrado de Contas a Receber efetuado com sucesso";
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova as aspas simples da variável, senão o php não reconhece como uma variável e sim como uma string.

<?php

$dataconta = reverse_date( $dataconta );

$datavencimento = reverse_date( $datavencimento );

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, eu ja havia testado desta maneira e da outra e mesmo assim nao cadastra a data:

 

<?php
   include "../includes/conecta.php";

function reverse_date( $date )
{
   return ( strstr( $date, '-' ) ) ? implode( '/', array_reverse( explode( '-', $date ) ) ) : implode( '-', array_reverse( explode( 		    '/', $date ) ) 	);
}

$datadaconta = reverse_date( $datadaconta );
$descricao = $_POST['descricao'];
$plano = explode( '_', $_POST[ 'plano' ] );
$codplanocontas = $plano[0];
$planodecontas = $plano[1];
$centrodecustos = $_POST['centrodecustos'];
$cli = explode( '_', $_POST[ 'cli' ] );
$id_cliente = $cli[0];
$cliente = $cli[1];	
$datavencimento = reverse_date( $datavencimento );
$conta = $_POST['conta'];
$valor = $_POST['valor'];
$comentario = $_POST['comentario'];
 if(!empty($descricao)) {
   $sql = mysql_query("insert into contasareceber (datadaconta, descricao, codplanocontas, planodecontas, centrodecustos, id_cliente, cliente, datavencimento, conta, valor, comentario) VALUES ('$datadaconta', '$descricao', '$codplanocontas', '$planodecontas', '$centrodecustos', '$id_cliente', '$cliente', '$datavencimento', '$conta', '$valor', '$comentario')", $db);
   echo"Cadastrado de Contas a Receber efetuado com sucesso";
   }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essas variáveis existem $dataconta e $datavencimento? você nao que utilizar o $_POST para receber do form ?

 

<?php
   include "../includes/conecta.php";

       function reverse_date( $date )
       {
   return ( strstr( $date, '-' ) ) ? implode( '/', array_reverse( explode( '-', $date ) ) ) : implode( '-', array_reverse( explode(                '/', $date ) )      );
       }

       $datadaconta = reverse_date( $_POST[ 'datadaconta' ]);
       $descricao = $_POST['descricao'];
       $plano = explode( '_', $_POST[ 'plano' ] );
       $codplanocontas = $plano[0];
       $planodecontas = $plano[1];
       $centrodecustos = $_POST['centrodecustos'];
       $cli = explode( '_', $_POST[ 'cli' ] );
       $id_cliente = $cli[0];
       $cliente = $cli[1];     
       $datavencimento = reverse_date( $_POST[ 'datavencimento' ] );
       $conta = $_POST['conta'];
       $valor = $_POST['valor'];
       $comentario = $_POST['comentario'];
        if(!empty($descricao)) {
          $sql = mysql_query("insert into contasareceber (datadaconta, descricao, codplanocontas, planodecontas, centrodecustos, id_cliente, cliente, datavencimento, conta, valor, comentario) VALUES ('$datadaconta', '$descricao', '$codplanocontas', '$planodecontas', '$centrodecustos', '$id_cliente', '$cliente', '$datavencimento', '$conta', '$valor', '$comentario')", $db);
          echo"Cadastrado de Contas a Receber efetuado com sucesso";
          }
?>

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.