Ir para conteúdo

POWERED BY:

Arquivado

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

edgard

comparação de datas

Recommended Posts

oi Gente... teria como alguem me ajudar a elaborar uma comparação com datas

 

eu to retornando do banco uma data, mas ela é varchar entao ela retorna 10/01/2006 por exemplo... eu quero compara-la com o dia atual

 

alguem sabe como resolver, to pesquisando na internet e to com duvidas !!!

 

Abraços

 

eu vi esse endereço aqui, mas eu nao entendi http://www.php5.com.br/?php=_faq/mostra&id_cat=30

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Paulo André disse:

if( date("d/m/Y") == "10/01/2006" )

Assim? :huh:

não funcionou nao

eu fiz uma parada assim tambem

só que nao funcionou tambem, quando eu vou ver o que ocorre nas variaveis, existe uma mudança de valores la dentro

 

$data_hoje = date("Y/m/d");

// Caso a data esteja como string utiliza o srttotime

$data_venc = date("Y/m/d",strtotime($dtVencto));

 

if ($data_venc <= $data_hoje)

{

echo 'não ta dentro do prazo de vencimento';

}

else

{

echo 'ta dentro do prazo de vencimento';

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
  edgard disse:
  Paulo André disse:

if( date("d/m/Y") == "10/01/2006" )

Assim? :huh:

não funcionou nao

eu fiz uma parada assim tambem

só que nao funcionou tambem, quando eu vou ver o que ocorre nas variaveis, existe uma mudança de valores la dentro

 

$data_hoje = date("Y/m/d");

// Caso a data esteja como string utiliza o srttotime

$data_venc = date("Y/m/d",strtotime($dtVencto));

 

if ($data_venc <= $data_hoje)

{

echo 'não ta dentro do prazo de vencimento';

}

else

{

echo 'ta dentro do prazo de vencimento';

}

 

cara, eu dei uma altera no código para pegar do jeito certo e fiz assim abaixo:

 

$data_venc = substr($dtVencto,6,4).'/'.substr($dtVencto,3,2).'/'.substr($dtVencto,0,2);

 

funcionou, só espero que esteja profissional, esta gente ? gostaria da opinião de vocês, pelo menos nesse trecho, devido ao fato deste processo todo ter sido feito por outro amigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais no teu caso você apenas converteu para o formato brasileiro a $data_venc e a $data_hoje = date("Y/m/d"); você deixou no formato contrário, com isso as comparações não irão funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Alaerte disse:

Como assim não funcionou ?

 

<?php
if(date('d/m/Y') > ('10/01/2006')){
echo 'é menor';
}
?>

esse seu '10/01/2006' seria a minha variavel que pego do banco certo ?!!!

quando eu rodo, ele hora faz e hora nao... eu estou dentro de um loop e mesmo nas datas que deveria estar no prazo ele diz que nao esta

achei estranho, por isso pensei em fazer o que fiz nos exemplos que te mostrei, mas ai rolou o problema dos numeros ficarem malucos la dentro da variavel, ai eu fiz aquele esquema substr e ai funcionou...

 

e agora? fiquei sem entender nada !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

cara, eu dei uma altera no código para pegar do jeito certo e fiz assim abaixo:

 

$data_venc = substr($dtVencto,6,4).'/'.substr($dtVencto,3,2).'/'.substr($dtVencto,0,2);

 

funcionou, só espero que esteja profissional, esta gente ? gostaria da opinião de vocês, pelo menos nesse trecho, devido ao fato deste processo todo ter sido feito por outro amigo...

que isso ??? pare com gambiarras, teu código tava correto, basta fazer a alteração que falei veja:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$dtVencto='2008-06-11';

$data_venc = date("Y/m/d",strtotime($dtVencto));

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Alaerte disse:

Mais no teu caso você apenas converteu para o formato brasileiro a $data_venc e a $data_hoje = date("Y/m/d"); você deixou no formato contrário, com isso as comparações não irão funcionar...

eu nao deixei no formato brasileiro... eu peguei o ano depois o mes e depois o dia... da uma olhadinha

 

01/02/2008

 

$data_venc = substr($dtVencto,6,4).'/'.substr($dtVencto,3,2).'/'.substr($dtVencto,0,2);

 

2008/02/01

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Alaerte disse:
  Citar

cara, eu dei uma altera no código para pegar do jeito certo e fiz assim abaixo:

 

$data_venc = substr($dtVencto,6,4).'/'.substr($dtVencto,3,2).'/'.substr($dtVencto,0,2);

 

funcionou, só espero que esteja profissional, esta gente ? gostaria da opinião de vocês, pelo menos nesse trecho, devido ao fato deste processo todo ter sido feito por outro amigo...

que isso ??? pare com gambiarras, teu código tava correto, basta fazer a alteração que falei veja:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$dtVencto='2008-06-11';

$data_venc = date("Y/m/d",strtotime($dtVencto));

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

 

vou testar entao amigao !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  edgard disse:
  Alaerte disse:
  Citar

cara, eu dei uma altera no código para pegar do jeito certo e fiz assim abaixo:

 

$data_venc = substr($dtVencto,6,4).'/'.substr($dtVencto,3,2).'/'.substr($dtVencto,0,2);

 

funcionou, só espero que esteja profissional, esta gente ? gostaria da opinião de vocês, pelo menos nesse trecho, devido ao fato deste processo todo ter sido feito por outro amigo...

que isso ??? pare com gambiarras, teu código tava correto, basta fazer a alteração que falei veja:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$dtVencto='2008-06-11';

$data_venc = date("Y/m/d",strtotime($dtVencto));

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

 

vou testar entao amigao !!!

 

ja sei o que ta ocorrendo, nesse momento

$dtVencto='2008-06-11'

 

é que esse valor pra mim que vem do banco vem assim > '11/06/2008', entao eu acho que nesse momento eu tenho que fazer ele ficar do jeito que você disse '2008-06-11'

 

não é isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o valor de $dtVencto e qual o tipo de comparação você quer fazer?

 

'Maior que' e 'menor que' naturalmente não funcionam porque a data está como tipo string e no formato brasileiro.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Paulo André disse:

Qual o valor de $dtVencto e qual o tipo de comparação você quer fazer?

 

'Maior que' e 'menor que' naturalmente não funcionam devido à esta data está como tipo string.

 

[]'s

a data é varchar sim e vem assim do banco pra mim '11/06/2008'

 

  Alaerte disse:

Não não precisa... pode jogar a variável direto então...

nao entendi... como assim jogar a variavel direto, como ficaria entao o processo, desculpa pela ignorancia viu !!! to ficando confuso cara foi mal !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

já que já está no formato cara, basta tu fazer isso:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$data_venc = $dtVencto;

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Paulo André disse:

Tente:

 

if( date('Y-m-d') > date('Y-m-d', strtotime($dtVencto)) )
{
	// faça...
}

 

if (date("Y/m/d") <= date("Y/m/d",strtotime($dtVencto)))

{

echo 'não ta dentro do prazo de vencimento';

}

else

{

echo 'ta dentro do prazo de vencimento';

}

 

cara, eu fiz assim e nao funcionou nao

Compartilhar este post


Link para o post
Compartilhar em outros sites
  edgard disse:
  Alaerte disse:

já que já está no formato cara, basta tu fazer isso:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$data_venc = $dtVencto;

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

vou testar isso dai

 

não funcionou !!! que coisa né !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hello!!!!!!!

 

Como eu disse, não se compara datas no formato brasileiro!

 

if ( mktime() <= strtotime($dtVencto) )
{
	echo 'não ta dentro do prazo de vencimento';
}
else
{
	echo 'ta dentro do prazo de vencimento';
}

E por favor, não faça um post atrás do outro. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar novamente:

 

<?php
$data_hoje = date('d/m/Y');
// Caso a data esteja como string utiliza o srttotime

$data_venc = '11/06/2008';

if ($data_venc <= $data_hoje)
{
echo 'não ta dentro do prazo de vencimento';
}
else
{
echo 'ta dentro do prazo de vencimento';
}
?>

No lugar da variável $data_venc coloque a variável que vem do banco que já deverá estar no formato 11/06/2008 entendeu ?

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.