2016-10-10 108 views
-1

我有一個簡單的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)); 

,但沒有返回數據(有數據的日期範圍之間的梭道負載)。

的代碼可以看出在appointments code

運行我猜的東西是STR_TO_DATE轉化率和格式$的startDate和結束日期$它們之間存在錯誤,但無法看到它是什麼。

+0

請不要使用PHP已久的棄用mysql_ API – Strawberry

+0

爲什麼要將它轉換兩次?第一次將它轉換爲「Y-m-d」格式。 – aynber

回答

0

它看起來像你的PHP程序日期是這樣的:'12/31/2015'

如果是這樣的話,你需要使用STR_TO_DATE()像這樣獲得成功的轉換到MySQL的內部日期格式。請注意格式字符串中的/字符。

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