2014-10-05 4 views
0

Привет, как мне исправить это? например, пользователь выбирает дату в будущем, например, сегодня составляет 5 октября, а пользователь вводит oct 20, затем он выбирает, чтобы $ dateto был в прошлом, септет 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

Где находится ваш датапикер? –

+0

Хм. его просто базовый. input type = "date" @BojanPetkovski – geds13

+0

Почему бы не сравнить с текущей датой ??? если они превышают текущие, очевидно, что это подделка –

ответ

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 

} 
Смежные вопросы