Check if the date is within the PHP limit

Asked

Viewed 130 times

0

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

/* 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();

2 answers

3


What you should do is add 90 days to the current date, not $_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();
  • if you enter an earlier date than today’s date will be within 90 days.

  • Yes, in this case you need to change the check in if: if ( $data_post <= $data_fim AND $data_post >= $data_inicio )

0

The date entered in the form can be in the format

(YYYY-MM-DD) or (DD-MM-YYYY) or (YYYY/MM/DD) or (DD/MM/YYYY)

will ....

If you enter an earlier date the current date will inform you that the date cannot 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";
    }
} 

Browser other questions tagged

You are not signed in. Login or sign up in order to post.