Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala ai galera,
Eu preciso da ajuda de vocês novamente, a minha dificuldade é a seguinte, preciso fazer uma comparação de data, só deixar o usuário fazer o cadastro até um dia antes da data estipulada, eu tentei fazer assim:
$dia = date(“d”);
$mes = date(“m”);
$diajogo = 19;
$mesjogo = 07;
if($diajogo >= $dia or $mesjogo >= $mes)
{
echo “Você tem que cadastrar até um dia antes do jogo”;
}
else
{
...
}
Só que não esta tanto certo, toda hora fica aparecendo a mensagem “Você tem que cadastrar até um dia antes do jogo”, alguém poderia me ajudar por favor!!
Marcos, eu fiz assim e funcionou, qualquer coisa posta novamente.
<?php $dia = date('d'); $mes = date('m'); $diajogo = 19; $mesjogo = 9; if ($dia > $diajogo && $mes <= $mesjogo ) { echo 'ainda pode cadastrar!'; } else { echo 'inscrições canceladas'; } ?>Tenta assim.
$totime = strtotime("+1 days");
$dataHoje = date("d/m/Y",$totime);
$dataJogo = "20/06/2011";
if($dataHoje >= $dataJogo){
echo "O prazo de cadastro já passou. =(";
}
else{
echo "Faça o que quiser. =)";
}Use a classe DateTime
<?php
$date_time = new DateTime( '2011-07-17' );
$diff = $date_time->diff( new DateTime( '2011-07-19' ) );
$diff->d; // pega a diferença de dias
?>
Fala ai galera, em primeiro lugar quero agradecer a todos(as) por terem me respondido.
Mais não consegui fazer, continua dando o mesmo problema, eu não conheço as funções mktime e nem DateTime!!
Copie e cole esse código em uma arquivo limpo(é praticamente o do Carlos), se der algum erro, poste aqui o mesmo:
<?php
$dia1 = new DateTime('2011-07-17');
$dia2 = new DateTime('2011-07-25');
$diferenca = $dia1->diff($dia2);
echo $diferenca->d;
?>
Da uma olhada no link que o Carlos deixou.
:thumbsup:
você deve usar PHP 5.3.0 ou superior para rodar o exemplo que postei
Cara, não tenho muita certeza do que estou escrevendo, mas se tu comparar o ---- >>> dia >= dia OR (ou) mes >= mes as tuas chance de dar erro serão grandes mesmo!
Vamos supor que tu esteja no dia 15, o jogo é dia 16. Até aqui tudo certo, mas a tua FÓRMULA diz que o DIA DO JOGO sendo MAIOR ou IGUAL ao dia do cadastro OU o MES DO JOGO sendo MAIOR ou IGUAL ao mes do cadastro vem a mensagem de erro...
Afinal, tu quer que o cara cadastre antes ou depois da data do jogo?
Acho que tá invertida tua fórmula, pois o mês não pode ter igualdade... é muito tempo (30 dias) considerando que é um mês inválido. Tira o sinal de igual da comparação do mês que eu acho que vai dar certo...
Tua fórmula: HOJE - 20 / 07 JOGO 21 / 07
Pelo certo dá pra fazer o cadastro, correto?
Mas tua fórmula vai dizer que o mês é igual ou maior (e nesse caso é igual), daí vai me dizer que não posso cadastrar.
Sei lá! Acho que é isso...
Se não for, desculpa o tempo tomado!
Fala ai galera,
usando a função mktime deu certo, ficou assim:
<?
$dataJogo = new DateTime('2011-07-22');
$dataHoje = new DateTime('2011-07-21');
if ($dataHoje > $dataJogo)echo "Não consegue cadastrar";
}echo "Prosiga";
}
?>
Eu consigo fazer uma variavel que gera a data atual e colocar no $dataHoje? eu dentei fazer assim: $dataHoje = new DateTime('Y-m-d'); só que deu erro!!Fala ai galera,
usando a função mktime deu certo, ficou assim:
apenas uma observação..
nesse caso você não usou a função" mktime", mas sim a classe DateTime que é disponível a partir do php5.3.0
Eu consigo fazer uma variavel que gera a data atual e colocar no $dataHoje? eu dentei fazer assim: $dataHoje = new DateTime('Y-m-d'); só que deu erro!
$dataHoje = date('Y-m-d');
são questões realmente muito básicas... consulte o manual oficial do php.net
hinom boa observação, não é a função mktime mais sim classe DateTime, muito obrigado pelo link que você mandou, graças a Deus eu consegui fazer através do link, do jeito que eu queria, ficou assim:
<?
$dataJogo = new DateTime('2011-07-24');
$dataHoje = new DateTime;
if ($dataHoje > $dataJogo)
{
echo "Não consegue cadastrar";
}
else
{
echo "Prosiga";
}
?>
Quero agradecer a todos e a todas que responderam e me ajudaram nessa dificuldade, muito obrigado pela atenção de todos, que Deus abençoe todos vocês!!
Primeiro transforme as datas em unix timestamp com a função mktime do php.
Depois é só comparar as duas datas normalmente.
Espero ter ajudado!