Reputation: 234
In this code I am converting date format dd-mm-yy
to yy-mm-dd
. When I echo $from
date it gives the correct date (2017-6-1
). Similarly with echo $to
.
But when I echo the query it can't get value of $from
, but $to
it gets the date correctly. What is the problem with $from
?
Here is my code...
<script language='javascript'>
jQuery(function($)
{
$("#from").datepicker({ dateFormat: 'dd-mm-yy' });
$("#to").datepicker({ dateFormat: 'dd-mm-yy' });
});
</script>
<input name="from" id="from" type="text" />
<input name="to" id="to" type="text" />
<?php
$froms = $_POST['from'];
list($day, $month, $year) = explode("-", $froms);
$from = "$year-$month-$day";
$too = $_POST['to'];
list($day, $month, $year) = explode("-", $too);
$to = "$year-$month-$day";
if($from = "$year-$month-$day" && $to = "$year-$month-$day")
{
echo "select * from students where (enquiry_date between '$from' and '$to')";
}
?>
Result:
select * from students where (enquiry_date between '1' and '2017-06-09') order by student_id
Upvotes: 0
Views: 58
Reputation: 90
First of all, you need to use '==' instead of '=' when you are comparing.
Otherwise, I think you are trying to check if the date format is entered correctly.
If so, replace line:
if($from = "$year-$month-$day" && $to = "$year-$month-$day")
with this line:
if(validateDate($from) && validateDate($to))
and make sure you define the function validateDate:
function validateDate($date)
{
$d = DateTime::createFromFormat('Y-m-d', $date);
return $d && $d->format('Y-m-d') == $date;
}
function was copied from this answer or php.net
Upvotes: 4
Reputation: 10179
User PHP Date funtion for date formating:
<?php
$froms = $_POST['from'];
$from = date('Y-m-d', strtotime($froms));
$too = $_POST['to'];
$to = date('Y-m-d', strtotime($too ));
echo "select * from students where (enquiry_date between '".$from."' and '".$to."')";
?>
Upvotes: 0