Ir para conteúdo

POWERED BY:

Arquivado

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

marcosfg

comparação de data

Recommended Posts

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.