Check if the date is within the PHP limit

0

How do I know if the date coming from $ _POST ['date'] is within the 90 day limit?

/* VERIFICACAO DE DATA */
    $data_inicio = date("Y-m-d");
    $data_post = $_POST['data_post'];
    $data_fim = date('Y-m-d', strtotime('+90 days', strtotime($_POST['dt_agenda'])));


    echo $data_inicio;
    echo "<br>".$data_fim."<br>";


    if($data_inicio <= $data_fim){
        echo "Está dentro do limite dos 90 dias";
    } else { 
        echo "A data de agenda não pode ultrapassar os 90 dias.";
    }

    die();
    
asked by anonymous 26.03.2017 / 22:07

2 answers

3

What you should do is add 90 days to the current date, not the one sent by $ _POST

/* VERIFICACAO DE DATA */
$data_inicio = date("Y-m-d");
$data_post = date('Y-m-d', strtotime($_POST['data_post']));
$data_fim = date('Y-m-d', strtotime('+90 day'));

echo $data_inicio;
echo "<br>".$data_fim."<br>";
if( $data_post >= $data_inicio AND $data_post <= $data_fim ){
    echo "Está dentro do limite dos 90 dias";
} else { 
    echo "A data de agenda não pode ultrapassar os 90 dias.";
}
die();
    
27.03.2017 / 15:50
0
  

The date entered in the form can be in the format

     ( YYYY-MM-DD ) or ( DD-MM-YYYY ) or < strong> DD / MM / YYYY )

     

What will ....

     

If you enter a date before the current date, it will inform you that the date can not be earlier than the current date.

function geraTimestamp($data) {
    $partes = explode('-', $data);
    return mktime(0, 0, 0, $partes[1], $partes[2], $partes[0]);
}

if ($_POST['data_post']) {

    $data_inicio = date("Y-m-d");
    $data_post = $_POST['data_post'];

    if (strpos($data_post,"/")) {
        $data_post=str_replace("/","-",$data_post);
    }

    $data_fim = date('Y-m-d', strtotime('+90 days', strtotime($data_inicio)));

    $partesPost = explode('-', $data_post);     
    if (strlen($partesPost[0])==2){ 
       $data_post  = $partesPost[2]."-".$partesPost[1]."-".$partesPost[0];
    }

    $time_inicial = geraTimestamp($data_post);
    $time_final = geraTimestamp($data_fim);

    $diferenca = $time_final - $time_inicial;

    $dias = (int)floor( $diferenca / (60 * 60 * 24));

    if ($dias<0){
        echo "A data de agenda não pode ultrapassar os 90 dias.";
    }elseif ($dias<=90){
        echo "Está dentro do limite dos 90 dias";
    } else { 
        echo "A data de agenda não pode ser anterior a data de hoje";
    }
} 
    
26.03.2017 / 23:34