Php 使用日期范围返回数据行

Php 使用日期范围返回数据行,php,mysql,Php,Mysql,我的服务器上有一个简单的PHP函数,它查看数据库并返回位于传入日期之间的表行。代码如下所示 if(isset($_GET['startDate'])) { $startDateRaw = $_GET['startDate']; $startSplit = explode("_", $startDateRaw); $startDate = date('d/m/Y', mktime(0,0,0, $startSplit[1], $startSplit[0], $startSplit[2]

我的服务器上有一个简单的PHP函数,它查看数据库并返回位于传入日期之间的表行。代码如下所示

if(isset($_GET['startDate'])) {
  $startDateRaw = $_GET['startDate'];
  $startSplit = explode("_", $startDateRaw);
  $startDate = date('d/m/Y', mktime(0,0,0, $startSplit[1], $startSplit[0], $startSplit[2]));
  $endDate = date('d/m/Y');

  if(isset($_GET['endDate']))
  {
    $endDateRaw = $_GET['endDate'];
    $endDateSplit = explode("_", $endDateRaw);
    $endDate = date('d/m/Y', mktime(0,0,0,$endDateSplit[1], $endDateSplit[0], $endDateSplit[2]));
  }
然后它连接到数据库,然后运行此查询并对结果进行编码

$query = "SELECT * FROM AppointmentList WHERE (DateCreated >= STR_TO_DATE($startDate, '%d%m%Y') AND DateDue <= STR_TO_DATE($endDate, '%d%m%Y'));";
$result = mysql_query($query,$link) or die('Errant query:  '.$query);

$posts = array();
if(mysql_num_rows($result)) {
   while($post = mysql_fetch_assoc($result)) {
   $posts[] = array('Appointments'=>$post);
   }
}

header('Content-type: application/json');
echo json_encode(array('Appointments'=>$posts));

$query=“SELECT*FROM AppointmentList WHERE(DateCreated>=STR_TO_DATE('startDate',%d%m%Y')和DateDuephp程序中的日期如下所示:
'12/31/2015'

如果是这种情况,您需要像这样使用
STR\u to\u DATE()
来成功转换为MySQL的内部日期格式。请注意格式字符串中的
/
字符

 STR_TO_DATE($startDate, '%d/%m/%Y')

请不要使用PHP早就不推荐使用的mysql\uApi为什么要将其转换两次?只需第一次将其转换为
Y-m-d
格式即可。