[PHP] Duvida com datas!

tiagommc

Power Member
Estava a pouco a programar e deparei-me que o seguinte código deixou não funciona dentro do tempo que pretendo!
Esteve a dar até hoje desde o dia 1 deste mês, mas chegou ao dia de hoje, e retornou o valor false...
Alguém me ajuda e explica o porque?


$hoje = date("d-m");


if ($hoje > "01-12" && $hoje < "06-01") {


echo "Ainda dentro da data";


} else {


echo "Fora da data";


}

O que pretendia com isso, era simplesmente dentro dessas datas (que desse para qualquer ano), alterasse para uma mensagem, fora da data, mostrar outra!
 
É melhor comparares usando unix timestamps porque ao comparares $hoje com esses valores o PHP faz uma conversão manhosa (especialmente do - )
 
Tens de utilizar o formato timestamp e tens de colocar o Ano também, senão não é um data.

Código:
$hoje = date("d-m-Y");

$hoje_ts = strtotime($hoje);

if ( $hoje_ts > strtotime("01-12-2012") && $hoje_ts < strtotime("06-01-2013") ) {
    echo "Ainda dentro da data";
} else {
    echo "Fora da data";
}
 
Obrigado pela dica do timestamps! Desconhecia totalmete esta ferramente!

Penso que agora esteja tudo perfeito,
Coloquei assim, já a funcionar para os próximos anos!



if ((strtotime("now") >= date(strtotime(date("Y-12-01")))) && (strtotime("now") <= date(strtotime(date('Y-m-d',strtotime(date("Y-01-06", mktime()) . " + 1 year")))))) {
echo "Ainda dentro da data";
} else {
echo "Fora da data";
}
 
Back
Topo