2014-10-05 67 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 

}