2014-10-05 64 views
0

你好,我該如何解決這個問題?例如,用戶在將來選擇一個日期,例如今天是oct 5,並且用戶輸入oct 20,然後他選擇$ dateto過去,sept 30或許是datepicker php的錯誤處理

我將如何防止用戶做這樣的事情?

這裏是我的代碼

<?php 
if(isset($_GET['datefrom']) && ($_GET['dateto'])){ 
$datefrom = $_GET['datefrom']; 
$dateto  = $_GET['dateto']; 
    $qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date 
     FROM order_detail 
     LEFT JOIN orders 
     ON order_detail.orderid=orders.serial 
     WHERE date(orders.date) BETWEEN '$datefrom' AND '$dateto'"; 
} 
else { 
    $qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date 
     FROM order_detail 
     LEFT JOIN orders 
     ON order_detail.orderid=orders.serial"; 
} 


mysql_set_charset("UTF8"); 
$result = @mysql_query($qry); 
if($result === FALSE) { 
    die(mysql_error()); // TODO: better error handling 
} 
while ($row=mysql_fetch_array($result)){ 

//echo $datefrom." "; 
//echo $dateto." - "; 
echo "₱".number_format($row['chenes'],2); 

} 
?> 

$ datefrom是過去,和$ dateto是目前或仍在過去,但不waaay過去$ datefrom。

$ datefrom應該總是早於$ dateto。

請幫助我,謝謝。 :)

+0

您的datepicker代碼在哪裏? – 2014-10-05 16:04:13

+0

hmm。它只是一個基本的。輸入類型=「日期」@BojanPetkovski – geds13 2014-10-05 16:05:17

+0

爲什麼不能與當前日期比較???如果那些比現在更大,那顯然是假的 – 2014-10-05 16:10:15

回答

0

你可以使用jQuery的ui datepicker。

下面是一個例子http://jsfiddle.net/ymcrnmm3/1/

$("#datefrom").datepicker({ 
    minDate: 0, 
    onSelect: function (selected) { 
     $("#dateto").datepicker("option", "minDate", selected) 
    } 
}); 
$("#dateto").datepicker({ 
    minDate: 0, 
    onSelect: function (selected) { 
     $("#datefrom").datepicker("option", "maxDate", selected) 
    } 
}); 
1

我已經經歷了它(如果我不與它通過JS處理它得到這一點之前)的方法是:

0

您可以更改爲時間戳並減去每個時間戳。然後你可以比較它是否更大。

$from = strtotime($_GET['datefrom']); 
$to = strtotime($_GET['dateto']); 
$now = time(); 

$interval1 = $now - $from; 
$interval2 = $now - $to; 

if($now > $interval1 || $now > $interval2) { 

    // do the rest 

}