如何使用php日期从mysql数据库获取数据?

时间:2014-11-21 06:09:32

标签: php mysql

在mysql contact_details 表中,我有一个名为 created_date 的列。当我向该表插入任何新联系人时,我将日期和时间插入此created_date列。 日期和时间有点像这样:

6/19/2013 18:25
6/19/2013 18:25
10/10/2014 17:25

嗯,我有一个搜索表单,其中存在2个字段。

1)日期来自。
2)日期到。

此2提交的日期仅为提货日期(月/日/年)不是时间。现在我想根据这2个日期搜索数据。它可以只搜索日期日期两者

1)日期自搜索日期从今天日期
2)日期将搜索所有数据,直到日期 3)如果两个日期都存在,那么它应该在 2日期之间返回数据

所以,我正在做的是:但它告诉我错误的结果。我该如何解决 ?

if(!empty($ad_datefrom)){    
    $getSearch .= "AND cd.created_date BETWEEN '$ad_datefrom' AND '$date' ";    
}

if(!empty($ad_dateto)){    
    $getSearch .= "AND cd.created_date BETWEEN'$ad_dateto' AND '$date' ";   
}

if(!empty($ad_datefrom) && !empty($ad_dateto)){
    $getSearch .= "AND cd.created_date BETWEEN '$ad_datefrom' AND '$ad_dateto' ";   
}

注意:

cd =  contact_details Table.
created_date = created_date Column of contact_details Table.  
$ad_datefrom =  Date From field.
$ad_dateto = Date To Field.
$date = current date (m/d/y)

谢谢你:)

2 个答案:

答案 0 :(得分:0)

MySQL想要的日期时间格式如'2014-12-24 23:59:59',使用date()函数,date("Y-m-d H:i:s",$timestamp)

答案 1 :(得分:0)

$ ad_datefrom和$ ad_dateto采用字符串格式,因此无法使用between子句。使用这样的php日期转换它们:

 $getSearch .= "AND cd.created_date BETWEEN '" . date("Y-m-d H:i:s", strtotime($ad_datefrom)) . "' AND '".date("Y-m-d H:i:s",strtotime($date))."' ";
 $getSearch .= "AND cd.created_date BETWEEN '" . date("Y-m-d H:i:s", strtotime($ad_dateto))."' AND '".date("Y-m-d H:i:s",strtotime($date))."' ";