Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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';
}Como assim não funcionou ?
<?php
if(date('d/m/Y') > ('10/01/2006')){
echo 'é menor';
}
?>>
>
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...
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...
>
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 !!!
>
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';
}
?>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
>
>
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 !!!
>
>
>
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 ?
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
Não não precisa... pode jogar a variável direto então...
>
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'
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 !!!
Tente:
if( date('Y-m-d') > date('Y-m-d', strtotime($dtVencto)) )
{
// faça...
}
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';
}
?>>
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
>
>
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é !!!
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';
} echo 'ta dentro do prazo de vencimento';
}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 ?>
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';
} echo 'ta dentro do prazo de vencimento';
}bom, primeiramente desculpa... segundo, não funcionou...
>
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 ?
bom, desculpa se é um post atraz do outro, é que eu to respondendo devido a correria que você's estao fazendo comigo, e agradeco muito vocês dois...
bom, esse exemplo que você me passou tambem nao funcionou, eu nao sei porque, mas em algumas datas que estao fora do prazo ele diz que esta no prazo e vice-versa, ta estranho, eu simplismente fiz o que você me pediu, eu nao to entendendo tambem !!!
A sua versão do PHP não está permitindo usar o strtotime() desta maneira, vai ter que utilizar outra forma para transformar para o padrão americano: Y-m-d, porque como eu já disse pelo menos três vezes, não é possível fazer comparação com datas no formato brasileiro!
[]'s
>
A sua versão do PHP não está permitindo usar o strtotime() desta maneira, vai ter que utilizar outra forma para transformar para o padrão americano: Y-m-d, porque como eu já disse pelo menos três vezes, não é possível fazer comparação com datas no formato brasileiro!
[]'s
Cara, agradecido de mais... eu ja entendi perfeitamente... eu nao vou mais comparar data do tipo brasileiro... obrigado Paulo !!!
vou procurar saber como eu farei agora isso que você me disse... valeu mesmo
Desculpa qualquer coisa ai falou !!!
Até mais !!!
Na verdade, não tem nada a ver com sua versão do PHP e o que eu disse antes estava quase certo.
Você consegue usar sim o strtotime(), mas não com barras e sim com hífens, então:
<?php
$dtVencto = str_replace('/', '-', '13/06/2008');
if( date('Y-m-d') >= date('Y-m-d', strtotime($dtVencto)) )
{
echo 'Fora do prazo';
} echo 'Ok';
}
?>Ele está gravando no banco de dados a data já no formato brasileiro para comparação, não seria mais viável e fácil se ele inserir a data já no formato americano com o tipo de campo DATE ?
if( date("d/m/Y") == "10/01/2006" )
Assim? :huh: