Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou querendo fazer uma comparação de datas em PHP do tipo: se DataInicio >= DataHoje + 3 dias, faz tal coisa. Senão, não faz nada. Tentei algo assim:
if ((1/86400)*(strtotime($_SESSION['buscaReserva']['dataInicio'])-strtotime(date("d/m/Y"))))>=3) {
// Do something }
else {
// Do nothing }
Sendo que as duas datas inicialmente estão no formato dd/mm/YYYY. Por exemplo, 23/06/2015 (hoje) deve se pelo menos três dias menos que a data da minha SESSION (26/06/2015, por exemplo).
COMO FAÇO?
Tentei algumas coisas dos links, mas não funcionou... :(
Uma solução que vi na internet e me pareceu a melhor, mas também não deu muito certo:
$data = $_SESSION['buscaReserva']['dataInicio'];
$hoje = date("Y-m-d");
$data = strtotime($data);
$hojeMaisTres = date('Y-m-d',strtotime($date . "+3 days"));
if ($data > $hojeMaisTres) {
// Do something
} else {
// Do nothing
}
E pior que como é num site que assumi de outro desenvolvedor, não tenho como usar os alerts pra confirmar se as variáveis de data estão mesmo chegando da forma certa. :cry:Como você implementou o que foi apresentado nos links? Qual foi o resultado?
Cara, em algumas partes da página ele faz a comparação sem problema.
Em outras, acho que ele não faz.
Não sei, tem algum "gato" nessa página que eu assumi. Pode fechar o tópico se quiser.
>
Estou querendo fazer uma comparação de datas em PHP do tipo: se DataInicio >= DataHoje + 3 dias, faz tal coisa. Senão, não faz nada. Tentei algo assim:
if ((1/86400)*(strtotime($_SESSION['buscaReserva']['dataInicio'])-strtotime(date("d/m/Y"))))>=3) {
// Do something }
else {
// Do nothing }
Sendo que as duas datas inicialmente estão no formato dd/mm/YYYY. Por exemplo, 23/06/2015 (hoje) deve se pelo menos três dias menos que a data da minha SESSION (26/06/2015, por exemplo).
COMO FAÇO?
Tenta assim :
$dataInicio = date('sua data aqui');
$dataHoje_modificada = date( "Y-m", strtotime( "+ 3 day" ) ); // data de hoje + 3 dias
ai aplica o IF :
if ($dataInicio >= $dataHoje.... )
{
seu codigo
}
else
{
}
voce pode usar uma variavel tambem, para declara quantos dias voce quer somar :
$somaDias = $_POST ou $_GET['dias'];
$dataHoje_modificado = date( "Y-m", strtotime( " + ".$somaDias." day" ) );
Espero que ajude.
Olá!
seria legal, já que vc quer adicionar 3 DIAS, se colocasse - na comparação - as datas no seguinte formato "aaaammdd" - tudo junto, ex: 23/06/2015 -> 20150623 e nesse caso adicionasse os 3 dias. Agora, vamos à conversão
Estou considerando o formato de data dd/mm/aaaa - 23/06/2015. Criamos três variáveis, $dia, $mes e $ano
$dia = substr('23/06/2015', 0, 1); // a saída será 23
$mes = substr('23/06/2015', 2, 2); // 06
$ano = substr('23/06/2015', 5, 4); // 2015
agora, criaremos duas variaveis - $data1 e $data2, onde aquela terá a data original e esta terá a data acrecida de três dias. E também a variável $dia2
$data1 = $ano.$mes.$dia;
$dia2 = $dia + 3;
$data2 = $ano.$mes.$dia2
agora é fazer a comparação
if($data1 >= $data2){
//faça alguma coisa
}else{
// faça outra coisa
}
Espero ter ajudado
também é interessante fazer um array de os meses e seus respectivos números de dias, caso extrapole - adicionará um mes.
Ps: a aplicação da função substr, para esse exemplo, não foi testada - mas a lógica é essa
Qualquer coisa de um grito
Nos links abaixo, há tudo que precisa:
http://forum.imasters.com.br/topic/487944-validar-data-com-php/?p=1939462
http://forum.imasters.com.br/topic/524218-verificar-se-data-ja-passou-strtotime/?p=2086594