使用Jquery Datepicker进行PHP MYSQL日期范围搜索
我试过几种不同的方法来解决我的问题,但似乎找不到一种有效的方法。我试图从mysql数据库中的datetime字段中搜索日期范围。 以下是我在表单前的jquery:使用Jquery Datepicker进行PHP MYSQL日期范围搜索,php,jquery,mysql,sql,mysqli,Php,Jquery,Mysql,Sql,Mysqli,我试过几种不同的方法来解决我的问题,但似乎找不到一种有效的方法。我试图从mysql数据库中的datetime字段中搜索日期范围。 以下是我在表单前的jquery: <script type="text/javascript" language="javascript"> jQuery(function() { jQuery( "#from" ).datepicker({ defaultDa
<script type="text/javascript" language="javascript">
jQuery(function() {
jQuery( "#from" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
dateFormat: "yy-mm-dd",
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
jQuery( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
dateFormat: "yy-mm-dd",
onClose: function( selectedDate ) {
jQuery( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
</script>
这是我的简单表格:
<form method="post" action="search.php">
<p>Select a date range: </p><label style="color:#FFF;" for="from">From</label>
From:<input type="text" id="from" name="from" />
<label style="color:#FFF;" for="to" >to</label>
To:<input type="text" id="to" name="to" />
<input name="export" type="submit" value="Search" />
</form>
下面是我的sql语句:
$hostname = ""; //SET SERVER/HOSTNAME
$dbusername = ""; //SET DATABASE USERNAME
$dbname = ""; //SET DATABASE NAME
$dbpassword = ""; //SET DATABASE USERNAME
$link = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname);
if (!$link) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
$sql = "SELECT * FROM log WHERE call_date >= DATE_FORMAT('" . $from . "', '%Y%m%d') AND call_date <= DATE_FORMAT('" . $to . "', '%Y%m%d')";
//$sql = "SELECT * FROM log WHERE call_date >= '".date("Y-m-d", strtotime($from))."' AND call_date <= '".date("Y-m-d", strtotime($to))."'";
//$sql = "SELECT * FROM log WHERE call_date >= '$from' AND call_date <= '$to'";
$result = mysqli_query($link, $sql, MYSQLI_STORE_RESULT);
while($row = $result->fetch_assoc()){
$name= $row['name'];
$disposition = $row['did_id'];
$date = $row['call_date'];
}
…然后输出我的结果。您可以看到,我尝试了一些我已经注释掉的不同sql语句。我知道我可以连接到我的数据库,我知道我得到的日期格式是yyyy mm dd,日期时间字段的格式是yyyy mm dd hh:mm:ss。非常感谢您的帮助。谢谢。换衣服
$sql = "SELECT * FROM log WHERE call_date >= DATE_FORMAT('" . $from . "', '%Y%m%d') AND call_date <= DATE_FORMAT('" . $to . "', '%Y%m%d')";
到
jQuery返回格式dateFormat:yy-mm-dd
日期格式'$至.,%Y%m%d';
改为
日期格式'$至.,%Y-%m-%d'
如果没有时间定义,MySQL将自动定义为00:00:00
因此,如果选择日期2000-01-02,MySQL将选择2000-01-02 00:00:00
这是选择日期的示例:
$sql=从日志中选择*,其中call_date>=日期格式“{$FROM}”、“%Y-%m-%d”和call_date。你太棒了。
$sql = "SELECT * FROM log WHERE call_date >= DATE_FORMAT('" . $from . "', '%Y/%m/%d') AND call_date <= DATE_FORMAT('" . $to . "', '%Y/%m/%d')";