Php Date Validation Function
I have a simple form on my website that asks for an event ID, a date and an amount. I would like to make sure that whatever date the user enters is greater than 10 days in the fut
Solution 1:
With HTML5, there's a min
(and max
) attribute for date-inputs, which takes YYYY-MM-DD
formats as arguments.
<input type="date" min="2017-09-01" name="my_date" />
You can then use PHP to generate the day that's 10 days into the future, and set that date via PHP.
<?php
$date = new DateTime("+10 days");
?>
<input type="date" min="<?= $date->format("Y-m-d"); ?>" name="my_date" />
That being said, this will only be client-side. It'll not allow the user to select any days between today and the next 10 days in the date-selector. However, its possible to circumvent this - simply because anything on the client-side can be manipulated. Which is why you should always do server-side validation on whats coming from the client. Using DateTime objects, you can just compare them directly, as shown below.
<?php
$date_input = new DateTime($_POST['my_date']);
$date_limit = new DateTime("+10 days");
if ($date_input > $date_limit) {
// Valid date! It's not in the next 10 days
}
Solution 2:
Check against UNIX time + 10 days in seconds.
$date = "2017-09-05";
If(strtotime($date) > time()+(60*60*24*10)){
Echo "ok";
}
Post a Comment for "Php Date Validation Function"