marcosfg 0 Denunciar post Postado Julho 19, 2011 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!! Compartilhar este post Link para o post Compartilhar em outros sites
Artur Luiz 0 Denunciar post Postado Julho 19, 2011 Primeiro transforme as datas em unix timestamp com a função mktime do php. Depois é só comparar as duas datas normalmente. Espero ter ajudado! Compartilhar este post Link para o post Compartilhar em outros sites
Annyh 4 Denunciar post Postado Julho 19, 2011 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'; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Rosario 4 Denunciar post Postado Julho 19, 2011 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. =)"; } Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Julho 20, 2011 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 ?> Compartilhar este post Link para o post Compartilhar em outros sites
marcosfg 0 Denunciar post Postado Julho 20, 2011 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!! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago Retondar 18 Denunciar post Postado Julho 20, 2011 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: Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Julho 20, 2011 você deve usar PHP 5.3.0 ou superior para rodar o exemplo que postei Compartilhar este post Link para o post Compartilhar em outros sites
Vítor André 3 Denunciar post Postado Julho 21, 2011 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! Compartilhar este post Link para o post Compartilhar em outros sites
marcosfg 0 Denunciar post Postado Julho 23, 2011 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"; } else { 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!! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Julho 23, 2011 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 http://php.net/date http://www.php.net/manual/en/class.datetime.php Compartilhar este post Link para o post Compartilhar em outros sites
marcosfg 0 Denunciar post Postado Julho 23, 2011 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!! Compartilhar este post Link para o post Compartilhar em outros sites